summaryrefslogtreecommitdiff
path: root/src/libzisp/value/sstr.zig
diff options
context:
space:
mode:
authorTaylan Kammer <taylan.kammer@gmail.com>2025-02-19 23:29:26 +0100
committerTaylan Kammer <taylan.kammer@gmail.com>2025-02-19 23:29:26 +0100
commit4e88891235664917a2db44b84c0bbeeb13dd71ad (patch)
tree7ed8ac2272ce92054fdf2f4e5e09b156dfc5a4d1 /src/libzisp/value/sstr.zig
parent4d0db1a1065f18d879b3ff90da6ecb14e9e1ae31 (diff)
update
Diffstat (limited to 'src/libzisp/value/sstr.zig')
-rw-r--r--src/libzisp/value/sstr.zig5
1 files changed, 4 insertions, 1 deletions
diff --git a/src/libzisp/value/sstr.zig b/src/libzisp/value/sstr.zig
index 896b8d7..2be2647 100644
--- a/src/libzisp/value/sstr.zig
+++ b/src/libzisp/value/sstr.zig
@@ -31,7 +31,7 @@ pub fn isValidSstr(s: []const u8) bool {
fn assertValidSstr(s: []const u8) void {
if (!isValidSstr(s)) {
- std.debug.print("invalid sstr: {s}", .{s});
+ std.debug.print("invalid sstr: {s}\n", .{s});
@panic("invalid sstr");
}
}
@@ -40,6 +40,8 @@ fn assertValidSstr(s: []const u8) void {
// shifting and bit masking, but memcpy always wins easily according to our
// micro-benchmarks, under both ReleaseSafe and ReleaseFast.
+// Note: rune.zig uses equivalent code; probably good to keep in sync.
+
pub fn pack(s: []const u8) Value {
assertValidSstr(s);
var v = Value{ .sstr = .{ .string = 0 } };
@@ -49,6 +51,7 @@ pub fn pack(s: []const u8) Value {
}
pub fn unpack(v: Value) struct { [6]u8, u3 } {
+ assert(v);
const s: [6]u8 = @bitCast(v.sstr.string);
inline for (0..6) |i| {
if (s[i] == 0) return .{ s, i };