summaryrefslogtreecommitdiffhomepage
path: root/serialize/corrade-string.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'serialize/corrade-string.cpp')
-rw-r--r--serialize/corrade-string.cpp31
1 files changed, 31 insertions, 0 deletions
diff --git a/serialize/corrade-string.cpp b/serialize/corrade-string.cpp
new file mode 100644
index 00000000..16ae23e1
--- /dev/null
+++ b/serialize/corrade-string.cpp
@@ -0,0 +1,31 @@
+#include "corrade-string.hpp"
+#include <nlohmann/json.hpp>
+#include <string_view>
+
+using namespace floormat;
+
+namespace nlohmann {
+
+void adl_serializer<String>::to_json(json& j, const String& val)
+{
+ std::string_view s{val.data(), val.size()};
+ using nlohmann::to_json;
+ to_json(j, s);
+}
+
+void adl_serializer<String>::from_json(const json& j, String& val)
+{
+ using nlohmann::from_json;
+ std::string_view s;
+ from_json(j, s);
+ val = String{s.data(), s.size()};
+}
+
+void adl_serializer<StringView>::to_json(json& j, StringView val)
+{
+ std::string_view s{val.data(), val.size()};
+ using nlohmann::to_json;
+ to_json(j, s);
+}
+
+} // namespace nlohmann