diff options
| author | Taylan Kammer <taylan.kammer@gmail.com> | 2025-02-18 22:48:57 +0100 |
|---|---|---|
| committer | Taylan Kammer <taylan.kammer@gmail.com> | 2025-02-18 22:48:57 +0100 |
| commit | 4d0db1a1065f18d879b3ff90da6ecb14e9e1ae31 (patch) | |
| tree | 7c5c275e7f3dae7bf96377560269b5a1bfa1fb99 /src/libzisp/value/char.zig | |
| parent | 2384a31c42f480c961785bcf0520bb0688b8e028 (diff) | |
update
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)); } |
