diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/zisp/value/array.zig | 9 | ||||
| -rw-r--r-- | src/zisp/value/istr.zig | 4 |
2 files changed, 12 insertions, 1 deletions
diff --git a/src/zisp/value/array.zig b/src/zisp/value/array.zig index 59667c8..ef2bcd6 100644 --- a/src/zisp/value/array.zig +++ b/src/zisp/value/array.zig @@ -134,7 +134,7 @@ pub const ArrayHeader = packed struct(u64) { } } - pub fn str(self: *@This()) []u8 { + pub fn str(self: *@This()) []const u8 { if (self.is_slice) { const buf = self.bufU8(); const start, const end = self.sliceInfo(); @@ -159,3 +159,10 @@ const Endian = enum(u1) { .big => .big, }; }; + +pub fn check(v: Value) ?ArrayPtr { + if (v.getPtr(.array)) |p| { + return @ptrCast(p); + } + return null; +} diff --git a/src/zisp/value/istr.zig b/src/zisp/value/istr.zig index aef5405..cadf849 100644 --- a/src/zisp/value/istr.zig +++ b/src/zisp/value/istr.zig @@ -78,6 +78,10 @@ pub fn intern(s: []const u8) Value { return value.ptr.pack(@ptrCast(istr), .istr); } +pub fn getStr(v: Value) []const u8 { + return assert(v).str(); +} + // Zisp API pub fn pred(v: Value) Value { |
