to_if_held_down(const nlohmann::json& json) : dispatcher_client(), current_held_down_id_(0) { try { if (json.is_object()) { to_ = std::vector<to_event_definition>{ json.get<to_event_definition>(), }; } else if (json.is_array()) { to_ = json.get<std::vector<to_event_definition>>(); } else { throw pqrs::json::unmarshal_error(fmt::format("json must be object or array, but is `{0}`", json.dump())); } } catch (...) { detach_from_dispatcher(); throw; } }
void from_json(const nlohmann::json &j, Tensor &t) { if ( j.size()!=6 || !j.is_array() ) throw std::runtime_error("Json->Tensor: array w. exactly six coefficients expected."); t = Tensor(j[0],j[1],j[2],j[3],j[4],j[5]); }