From 6d86807e21c9adb29d0fdf148d9ce27c32dd92a7 Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Thu, 22 Jan 2026 15:12:57 +0100 Subject: [PATCH] refactor: improve type safety of Buffer.Ref values in messages --- src/buffer/Buffer.zig | 4 ++-- src/tui/mainview.zig | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/src/buffer/Buffer.zig b/src/buffer/Buffer.zig index d93a187..fa084b4 100644 --- a/src/buffer/Buffer.zig +++ b/src/buffer/Buffer.zig @@ -1760,12 +1760,12 @@ pub const Ref = enum(usize) { pub fn cborEncode(self: @This(), writer: *std.Io.Writer) std.io.Writer.Error!void { const value: usize = @intFromEnum(self); - try cbor.writeValue(writer, value); + try cbor.writeValue(writer, .{ "BREF", value }); } pub fn cborExtract(self: *@This(), iter: *[]const u8) cbor.Error!bool { var value: usize = 0; - if (try cbor.matchValue(iter, cbor.extract(&value))) { + if (try cbor.matchValue(iter, .{ "BREF", cbor.extract(&value) })) { self.* = @enumFromInt(value); return true; } diff --git a/src/tui/mainview.zig b/src/tui/mainview.zig index fac1e77..1ff50df 100644 --- a/src/tui/mainview.zig +++ b/src/tui/mainview.zig @@ -1361,10 +1361,12 @@ const cmds = struct { return error.InvalidShellArgument; const cmd = ctx.args; const handlers = struct { - fn out(buffer_ref: usize, parent: tp.pid_ref, _: []const u8, output: []const u8) void { + fn out(context: usize, parent: tp.pid_ref, _: []const u8, output: []const u8) void { + const buffer_ref: Buffer.Ref = @enumFromInt(context); parent.send(.{ "cmd", "shell_execute_stream_output", .{ buffer_ref, output } }) catch {}; } - fn exit(buffer_ref: usize, parent: tp.pid_ref, arg0: []const u8, err_msg: []const u8, exit_code: i64) void { + fn exit(context: usize, parent: tp.pid_ref, arg0: []const u8, err_msg: []const u8, exit_code: i64) void { + const buffer_ref: Buffer.Ref = @enumFromInt(context); var buf: [256]u8 = undefined; var stream = std.io.fixedBufferStream(&buf); const writer = stream.writer();