From 53fc34ba692d4501988820fad813e14e03efb426 Mon Sep 17 00:00:00 2001 From: Yves Biener Date: Mon, 11 Nov 2024 12:29:33 +0100 Subject: [PATCH] mod(terminal): add writer interface implementation --- src/terminal.zig | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/terminal.zig b/src/terminal.zig index 6af75b2..9c8cb91 100644 --- a/src/terminal.zig +++ b/src/terminal.zig @@ -55,6 +55,21 @@ pub fn write(buf: []const u8) !usize { return try std.posix.write(std.posix.STDIN_FILENO, buf); } +fn contextWrite(context: @This(), data: []const u8) anyerror!usize { + _ = context; + return try std.posix.write(std.posix.STDOUT_FILENO, data); +} + +const Writer = std.io.Writer( + @This(), + anyerror, + contextWrite, +); + +pub fn writer() Writer { + return .{ .context = .{} }; +} + pub fn setCursorPosition(pos: Position) !void { var buf: [64]u8 = undefined; const value = try std.fmt.bufPrint(&buf, "\x1b[{d};{d}H", .{ pos.row, pos.col });