-using json = nlohmann::json;
-
-struct wm::area area_from_json(json const &j) {
- return wm::area{
- j["name"],
- {
- j["width"], j["height"], j["x"], j["y"],
- },
- j["zorder"],
- };
-}
-
-result<struct layout> layout_from_json(json const &j) {
- auto &ja = j["areas"];
-
- auto l = layout{j["name"], uint32_t(ja.size()), {}};
-
- if (ja.size() > layout::MAX_N_AREAS) {
- return Err<struct layout>("Invalid number of areas in layout");
- }
-
- logdebug("Loading layout '%s' with %u areas", l.name.c_str(),
- unsigned(ja.size()));
-
- std::transform(std::cbegin(ja), std::cend(ja), std::begin(l.areas),
- area_from_json);
-
- return Ok(l);
-}