diff options
Diffstat (limited to 'src/libzisp/value/char.zig')
| -rw-r--r-- | src/libzisp/value/char.zig | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/src/libzisp/value/char.zig b/src/libzisp/value/char.zig index 6a38f0d..98bb26f 100644 --- a/src/libzisp/value/char.zig +++ b/src/libzisp/value/char.zig @@ -1,10 +1,11 @@ -const Value = @import("../value.zig").Value; +const value = @import("../value.zig"); + +const Value = value.Value; + +// Zig API pub fn check(v: Value) bool { - return v.isPacked() and - !v.char.fixnum and - !v.char.ptr and - v.char.tag == .char; + return v.isOther(.char); } pub fn assert(v: Value) void { @@ -15,10 +16,16 @@ pub fn assert(v: Value) void { } pub fn pack(c: u21) Value { - return .{ .char = .{ .value = c } }; + return .{ .char = .{ .char = c } }; } pub fn unpack(v: Value) u21 { assert(v); - return @truncate(v.char.value); + return @truncate(v.char.char); +} + +// Zisp API + +pub fn pred(v: Value) Value { + return value.boole.pack(check(v)); } |
