summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2026-06-03 22:26:50 +0200
committerTaylan Kammer <taylan.kammer@gmail.com>2026-06-03 22:26:50 +0200
commit1a0a55692988fe8e22ebb397a70b60424d653a5e (patch)
treed6364bd2c29b50314c50d81a63ca8c5e210404ad /src
parente77c34f654a47cb90857f1ac4d6957e008858d6a (diff)
Add a pair of util funcs.
Diffstat (limited to 'src')
-rw-r--r--src/zisp/value/array.zig9
-rw-r--r--src/zisp/value/istr.zig4
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 {