From ab0202a5f7cfb699dd8e34fe754313e98a477a1a Mon Sep 17 00:00:00 2001 From: torque Date: Fri, 8 Mar 2024 10:49:29 -0800 Subject: [PATCH] yaml.Value: add basic JSON emitting This is quite useful for checking yaml document structure. --- src/yaml.zig | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/yaml.zig b/src/yaml.zig index 7957c45..c3facb2 100644 --- a/src/yaml.zig +++ b/src/yaml.zig @@ -297,4 +297,20 @@ pub const Value = union(enum) { } } }; + + pub fn jsonStringify(value: @This(), jws: anytype) !void { + switch (value) { + .scalar => |scalar| try jws.write(scalar), + .list => |list| try jws.write(list), + .map => |map| { + try jws.beginObject(); + var it = map.iterator(); + while (it.next()) |entry| { + try jws.objectField(entry.key_ptr.*); + try jws.write(entry.value_ptr.*); + } + try jws.endObject(); + }, + } + } };