summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/zisp.zig1
-rw-r--r--src/zisp/io/print.zig3
-rw-r--r--src/zisp/value.zig10
-rw-r--r--src/zisp/value/rune.zig9
-rw-r--r--src/zisp/value/sstr.zig1
5 files changed, 5 insertions, 19 deletions
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