summaryrefslogtreecommitdiffhomepage
path: root/serialize/corrade-string.cpp
diff options
context:
space:
mode:
authorStanislaw Halik <sthalik@misaki.pl>2022-11-10 21:27:08 +0100
committerStanislaw Halik <sthalik@misaki.pl>2022-11-10 22:17:43 +0100
commitee1a527191db646850ee919b8fe3a6f8cb6cd693 (patch)
treea1ff23b8c0f93d689d51d3837caefaa72b9480cd /serialize/corrade-string.cpp
parent0e23ba9e5a565e34fee0f024e29ce162f420ec22 (diff)
get rid of std::string
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