From 1a0a55692988fe8e22ebb397a70b60424d653a5e Mon Sep 17 00:00:00 2001 From: Taylan Kammer Date: Wed, 3 Jun 2026 22:26:50 +0200 Subject: Add a pair of util funcs. --- src/zisp/value/array.zig | 9 ++++++++- src/zisp/value/istr.zig | 4 ++++ 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'src') 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 { -- cgit v1.2.3