diff options
author | Karen Arutyunov <karen@codesynthesis.com> | 2019-04-18 20:15:46 +0300 |
---|---|---|
committer | Karen Arutyunov <karen@codesynthesis.com> | 2019-04-25 19:43:36 +0300 |
commit | 276f68ee4d55befa8922378199b4281c82d4fd93 (patch) | |
tree | af1c1b94fddec588feefe79a86e6463094ba2d8e /libbutl/manifest-serializer.cxx | |
parent | 7a1c91dbdbde1c4feeaa701592365bb4b7cf2562 (diff) |
Add parse_manifest() and serialize_manifest() functions
Diffstat (limited to 'libbutl/manifest-serializer.cxx')
-rw-r--r-- | libbutl/manifest-serializer.cxx | 21 |
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. + } } |