const std = @import("std"); const Writer = std.Io.Writer; pub const Console = struct { setup: *const fn (*const @This()) void, write: *const fn (*const @This(), []const u8) void, }; var cur: ?*const Console = null; fn drain( _: *Writer, data: []const []const u8, _: usize, ) Writer.Error!usize { if (cur) |c| { c.write(c, data[0]); } return data[0].len; } var writer: Writer = .{ .vtable = &.{ .drain = drain }, .buffer = &.{}, }; pub fn print(comptime fmt: []const u8, args: anytype) void { writer.print(fmt, args) catch {}; } pub fn set_console(console: *const Console) void { console.setup(console); cur = console; }