#pragma once // Example for plugging a (de)serialization implementation using the binary // (de)serializer provided by https://github.com/Martchus/reflective-rapidjson. #include "./lmdb-safe.hh" #include #include #include #include namespace LMDBSafe { template std::string serToString(const T &t) { auto ret = std::string(); auto inserter = boost::iostreams::back_insert_device(ret); auto stream = boost::iostreams::stream>(inserter); auto deserializer = ReflectiveRapidJSON::BinaryReflector::BinarySerializer(&stream); deserializer.write(t); return ret; } template void serFromString(string_view str, T &ret) { auto source = boost::iostreams::array_source(str.data(), str.size()); auto stream = boost::iostreams::stream(source); auto serializer = ReflectiveRapidJSON::BinaryReflector::BinaryDeserializer(&stream); ret = T(); serializer.read(ret); } } // namespace LMDBSafe