From 3281cb8192d5dad2625ae5a106f6a6d1a2a975c7 Mon Sep 17 00:00:00 2001 From: Taylan Kammer Date: Thu, 4 Jun 2026 16:53:55 +0200 Subject: Eliminate ShortString. --- src/zisp.zig | 1 - src/zisp/io/print.zig | 3 +-- src/zisp/value.zig | 10 ---------- src/zisp/value/rune.zig | 9 ++++----- src/zisp/value/sstr.zig | 1 - 5 files changed, 5 insertions(+), 19 deletions(-) (limited to 'src') diff --git a/src/zisp.zig b/src/zisp.zig index c31210a..693b7b4 100644 --- a/src/zisp.zig +++ b/src/zisp.zig @@ -6,7 +6,6 @@ pub const io = @import("zisp/io.zig"); pub const lib = @import("zisp/lib.zig"); pub const value = @import("zisp/value.zig"); -pub const ShortString = value.ShortString; pub const Value = value.Value; pub const Zptr = value.Zptr; diff --git a/src/zisp/io/print.zig b/src/zisp/io/print.zig index b1647cc..85d2b5c 100644 --- a/src/zisp/io/print.zig +++ b/src/zisp/io/print.zig @@ -41,9 +41,8 @@ pub fn fixnum(w: Writer, v: Value) !void { } pub fn rune(w: Writer, v: Value) !void { - const name = value.rune.unpack(v); try w.writeByte('#'); - try w.writeAll(name.slice()); + try w.writeAll(value.rune.unpack(&v)); } pub fn sstr(w: Writer, v: Value) !void { diff --git a/src/zisp/value.zig b/src/zisp/value.zig index eb4ee8b..3450bfd 100644 --- a/src/zisp/value.zig +++ b/src/zisp/value.zig @@ -169,16 +169,6 @@ const endian = builtin.target.cpu.arch.endian(); const max = std.math.maxInt; -/// Used when dealing with runes and short strings. -pub const ShortString = struct { - len: u8, - buf: [6]u8, - - pub fn slice(this: *const @This()) []const u8 { - return this.buf[0..this.len]; - } -}; - /// Used to find the length of a rune or short string. pub fn sstrLen(x: u64) u8 { const bytes: @Vector(8, u8) = @bitCast(x); diff --git a/src/zisp/value/rune.zig b/src/zisp/value/rune.zig index 32230c4..6ce1bc3 100644 --- a/src/zisp/value/rune.zig +++ b/src/zisp/value/rune.zig @@ -2,7 +2,6 @@ const std = @import("std"); const value = @import("../value.zig"); -const ShortString = value.ShortString; const Value = value.Value; // Zig API @@ -46,11 +45,11 @@ pub fn packForced(s: []const u8) Value { return .{ .rune = .{ .name = @bitCast(buf) } }; } -pub fn unpack(v: Value) ShortString { - assert(v); - const buf: [6]u8 = @bitCast(v.rune.name); +pub fn unpack(v: *const Value) []const u8 { + assert(v.*); + const buf = v.bytes(); const len = value.sstrLen(v.bits); - return .{ .buf = buf, .len = len }; + return buf[0..len]; } // Zisp API diff --git a/src/zisp/value/sstr.zig b/src/zisp/value/sstr.zig index 8435800..2c4db4b 100644 --- a/src/zisp/value/sstr.zig +++ b/src/zisp/value/sstr.zig @@ -2,7 +2,6 @@ const std = @import("std"); const value = @import("../value.zig"); -const ShortString = value.ShortString; const Value = value.Value; // Zig API -- cgit v1.2.3