diff --git a/include/rfl/parsing/Parser_map_like.hpp b/include/rfl/parsing/Parser_map_like.hpp index 29c3ddcc..d4b3fe78 100644 --- a/include/rfl/parsing/Parser_map_like.hpp +++ b/include/rfl/parsing/Parser_map_like.hpp @@ -15,10 +15,14 @@ namespace rfl { namespace parsing { -template - requires AreReaderAndWriter> -struct Parser, ProcessorsType> - : public MapParser, ProcessorsType> {}; +template + requires AreReaderAndWriter> +struct Parser, + ProcessorsType> + : public MapParser, + ProcessorsType> {}; template diff --git a/include/rfl/parsing/Parser_vector_like.hpp b/include/rfl/parsing/Parser_vector_like.hpp index 81412156..8ce8322b 100644 --- a/include/rfl/parsing/Parser_vector_like.hpp +++ b/include/rfl/parsing/Parser_vector_like.hpp @@ -33,25 +33,33 @@ template struct Parser, ProcessorsType> : public VectorParser, ProcessorsType> {}; -template - requires AreReaderAndWriter> -struct Parser, ProcessorsType> - : public VectorParser, ProcessorsType> {}; +template + requires AreReaderAndWriter> +struct Parser, ProcessorsType> + : public VectorParser, + ProcessorsType> {}; -template - requires AreReaderAndWriter> -struct Parser, ProcessorsType> - : public VectorParser, ProcessorsType> {}; +template + requires AreReaderAndWriter> +struct Parser, ProcessorsType> + : public VectorParser, + ProcessorsType> {}; -template - requires AreReaderAndWriter> -struct Parser, ProcessorsType> - : public VectorParser, ProcessorsType> {}; +template + requires AreReaderAndWriter> +struct Parser, ProcessorsType> + : public VectorParser, + ProcessorsType> {}; -template - requires AreReaderAndWriter> -struct Parser, ProcessorsType> - : public VectorParser, ProcessorsType> {}; +template + requires AreReaderAndWriter> +struct Parser, ProcessorsType> + : public VectorParser, + ProcessorsType> {}; template diff --git a/include/rfl/parsing/is_map_like.hpp b/include/rfl/parsing/is_map_like.hpp index 82f60021..1fb0cf65 100644 --- a/include/rfl/parsing/is_map_like.hpp +++ b/include/rfl/parsing/is_map_like.hpp @@ -14,11 +14,13 @@ class is_map_like; template class is_map_like : public std::false_type {}; -template -class is_map_like> : public std::true_type {}; +template +class is_map_like> : public std::true_type { +}; -template -class is_map_like> : public std::true_type {}; +template +class is_map_like> + : public std::true_type {}; template class is_map_like> diff --git a/include/rfl/parsing/is_map_like_not_multimap.hpp b/include/rfl/parsing/is_map_like_not_multimap.hpp index 64811608..83475765 100644 --- a/include/rfl/parsing/is_map_like_not_multimap.hpp +++ b/include/rfl/parsing/is_map_like_not_multimap.hpp @@ -14,8 +14,9 @@ class is_map_like_not_multimap; template class is_map_like_not_multimap : public std::false_type {}; -template -class is_map_like_not_multimap> : public std::true_type {}; +template +class is_map_like_not_multimap> + : public std::true_type {}; template class is_map_like_not_multimap< diff --git a/tests/json/test_map_with_custom_less.cpp b/tests/json/test_map_with_custom_less.cpp new file mode 100644 index 00000000..89405f49 --- /dev/null +++ b/tests/json/test_map_with_custom_less.cpp @@ -0,0 +1,30 @@ +#include +#include +#include +#include +#include + +#include "write_and_read.hpp" + +namespace test_map_with_custom_less { + +struct Person { + rfl::Rename<"firstName", std::string> first_name; + rfl::Rename<"lastName", std::string> last_name = "Simpson"; + std::shared_ptr>> children; +}; + +TEST(json, test_map_with_custom_less) { + auto children = std::make_shared>>(); + children->insert(std::make_pair(1, Person{.first_name = "Bart"})); + children->insert(std::make_pair(2, Person{.first_name = "Lisa"})); + children->insert(std::make_pair(2660778562, Person{.first_name = "Maggie"})); + + const auto homer = + Person{.first_name = "Homer", .children = std::move(children)}; + + write_and_read( + homer, + R"({"firstName":"Homer","lastName":"Simpson","children":{"1":{"firstName":"Bart","lastName":"Simpson"},"2":{"firstName":"Lisa","lastName":"Simpson"},"2660778562":{"firstName":"Maggie","lastName":"Simpson"}}})"); +} +} // namespace test_map_with_custom_less