From 8ecefa4b3fd56fc87f822f3dbefa1ce1ef6601d8 Mon Sep 17 00:00:00 2001 From: jjanzen Date: Wed, 22 Jan 2025 12:17:02 -0600 Subject: generic io interface --- src/main.zig | 45 +++++++++++++++++---------------------------- 1 file changed, 17 insertions(+), 28 deletions(-) (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig index 5fe26db..f55935d 100644 --- a/src/main.zig +++ b/src/main.zig @@ -2,48 +2,37 @@ const std = @import("std"); const IO = @import("frontend/ncurses.zig").IO; const Action = @import("actions.zig").Action; -pub fn main() u8 { - var gpa = std.heap.GeneralPurposeAllocator(.{}){}; - const allocator = gpa.allocator(); - var io = IO.init(allocator) catch |err| { - std.log.err("{}", .{err}); - return 1; - }; - defer io.deinit(); +fn run(allocator: std.mem.Allocator) !void { + var io = try IO.init(allocator); + defer { + io.deinit(); + } - io.displayMessage("Initialized") catch { - return 1; - }; + try io.displayMessage("Initialized"); var action = Action.illegal; var tick_count: usize = 0; while (action != Action.exit) { - const str = std.fmt.allocPrint(allocator, "{}", .{tick_count}) catch { - return 1; - }; + const str = try std.fmt.allocPrint(allocator, "{}", .{tick_count}); defer allocator.free(str); - io.displayMessage(str) catch { - return 1; - }; + try io.displayMessage(str); - action = io.waitForTick() catch { - return 1; - }; + action = try io.waitForTick(); switch (action) { Action.tick => { - const str2 = std.fmt.allocPrint(allocator, "{}", .{tick_count}) catch { - return 1; - }; - defer allocator.free(str2); - io.displayMessage(str2) catch { - return 1; - }; - tick_count += 1; }, else => {}, } } +} + +pub fn main() u8 { + var gpa = std.heap.GeneralPurposeAllocator(.{}){}; + const allocator = gpa.allocator(); + run(allocator) catch { + return 1; + }; return 0; } -- cgit v1.2.3