diff options
Diffstat (limited to 'src/libzisp/io/unparser.zig')
| -rw-r--r-- | src/libzisp/io/unparser.zig | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/src/libzisp/io/unparser.zig b/src/libzisp/io/unparser.zig index eb27e20..83186c2 100644 --- a/src/libzisp/io/unparser.zig +++ b/src/libzisp/io/unparser.zig @@ -1 +1,16 @@ -// wip +const std = @import("std"); + +const value = @import("../value.zig"); + +const Value = value.Value; + +pub fn unparse(v: Value) []u8 { + var gpa: std.heap.GeneralPurposeAllocator(.{}) = .init; + var out: std.ArrayList(u8) = .init(gpa.allocator()); + if (value.rune.check(v)) { + const name, const len = value.rune.unpack(v); + out.append('#') catch @panic(""); + out.appendSlice(name[0..len]) catch @panic(""); + } + return out.toOwnedSlice() catch @panic(""); +} |
