summaryrefslogtreecommitdiffhomepage
path: root/serialize/wall-atlas.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'serialize/wall-atlas.hpp')
-rw-r--r--serialize/wall-atlas.hpp10
1 files changed, 10 insertions, 0 deletions
diff --git a/serialize/wall-atlas.hpp b/serialize/wall-atlas.hpp
index edb8b29b..7f578a5d 100644
--- a/serialize/wall-atlas.hpp
+++ b/serialize/wall-atlas.hpp
@@ -6,6 +6,13 @@
namespace nlohmann {
template<>
+struct adl_serializer<floormat::Wall::Frame>
+{
+ static void to_json(json& j, const floormat::Wall::Frame& x);
+ static void from_json(const json& j, floormat::Wall::Frame& x);
+};
+
+template<>
struct adl_serializer<std::shared_ptr<floormat::wall_atlas>>
{
static void to_json(json& j, const std::shared_ptr<const floormat::wall_atlas>& x);
@@ -21,10 +28,13 @@ using nlohmann::json;
uint8_t direction_index_from_name(StringView s);
StringView direction_index_to_name(size_t i);
+[[nodiscard]] Array<Frame> read_all_frames(const json& jroot);
[[nodiscard]] Group read_group_metadata(const json& jgroup);
[[nodiscard]] Direction read_direction_metadata(const json& jroot, Direction_ dir);
+Pair<Array<Direction>, std::array<DirArrayIndex, 4>> read_all_directions(const json& jroot);
Info read_info_header(const json& jroot);
+void write_all_frames(json& jframes, ArrayView<const Frame> array);
void write_group_metadata(json& jgroup, const Group& val);
void write_direction_metadata(json& jdir, const Direction& dir);
void write_all_directions(json& jroot, const wall_atlas& a);