summaryrefslogtreecommitdiff
path: root/src/libzisp/io/unparser.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/libzisp/io/unparser.zig')
-rw-r--r--src/libzisp/io/unparser.zig17
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("");
+}