summaryrefslogtreecommitdiff
path: root/src/libzisp/io/unparser.zig
blob: 83186c29ae06d3ef11dd4b022002b17af6e77855 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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("");
}