aboutsummaryrefslogtreecommitdiff
path: root/app/source/Cplt/Utils/IO/StringIntegration.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/source/Cplt/Utils/IO/StringIntegration.hpp')
-rw-r--r--app/source/Cplt/Utils/IO/StringIntegration.hpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/app/source/Cplt/Utils/IO/StringIntegration.hpp b/app/source/Cplt/Utils/IO/StringIntegration.hpp
new file mode 100644
index 0000000..66f42b0
--- /dev/null
+++ b/app/source/Cplt/Utils/IO/StringIntegration.hpp
@@ -0,0 +1,37 @@
+#pragma once
+
+#include <Cplt/Utils/IO/DataStream.hpp>
+
+#include <iterator>
+#include <string>
+#include <string_view>
+
+namespace DataStreamAdapters {
+struct String
+{
+ static void ReadFromDataStream(InputDataStream& stream, std::string& str)
+ {
+ uint64_t size;
+ stream.Read(size);
+
+ str = {};
+ str.reserve(size);
+ stream.ReadBytes(size, std::back_inserter(str));
+ }
+
+ static void WriteToDataStream(OutputDataStream& stream, const std::string& str)
+ {
+ stream.Write((uint64_t)str.size());
+ stream.WriteBytes(str.size(), str.data());
+ }
+};
+
+struct StringView
+{
+ static void WriteToDataStream(OutputDataStream& stream, const std::string_view& str)
+ {
+ stream.Write((uint64_t)str.size());
+ stream.WriteBytes(str.size(), str.data());
+ }
+};
+} // namespace DataStreamAdapters