aboutsummaryrefslogtreecommitdiff
path: root/libbutl/manifest-serializer.cxx
diff options
context:
space:
mode:
authorKaren Arutyunov <karen@codesynthesis.com>2019-04-18 20:15:46 +0300
committerKaren Arutyunov <karen@codesynthesis.com>2019-04-25 19:43:36 +0300
commit276f68ee4d55befa8922378199b4281c82d4fd93 (patch)
treeaf1c1b94fddec588feefe79a86e6463094ba2d8e /libbutl/manifest-serializer.cxx
parent7a1c91dbdbde1c4feeaa701592365bb4b7cf2562 (diff)
Add parse_manifest() and serialize_manifest() functions
Diffstat (limited to 'libbutl/manifest-serializer.cxx')
-rw-r--r--libbutl/manifest-serializer.cxx21
1 files changed, 20 insertions, 1 deletions
diff --git a/libbutl/manifest-serializer.cxx b/libbutl/manifest-serializer.cxx
index 059c374..4284ec6 100644
--- a/libbutl/manifest-serializer.cxx
+++ b/libbutl/manifest-serializer.cxx
@@ -10,6 +10,7 @@
#ifndef __cpp_lib_modules
#include <string>
+#include <vector>
#include <cstddef>
#include <stdexcept>
@@ -27,7 +28,7 @@ module butl.manifest_serializer;
import std.core;
import std.io;
#endif
-import butl.char_scanner;
+import butl.manifest_types;
#endif
#endif
@@ -319,4 +320,22 @@ namespace butl
: runtime_error (format (n, d)), name (n), description (d)
{
}
+
+ // serialize_manifest
+ //
+ void
+ serialize_manifest (manifest_serializer& s,
+ const vector<manifest_name_value>& nvs,
+ bool eos)
+ {
+ s.next ("", "1"); // Start of manifest.
+
+ for (const manifest_name_value& nv: nvs)
+ s.next (nv.name, nv.value);
+
+ s.next ("", ""); // End of manifest.
+
+ if (eos)
+ s.next ("", ""); // End of stream.
+ }
}