diff options
author | jjanzen <jjanzen@jjanzen.ca> | 2025-01-22 12:17:02 -0600 |
---|---|---|
committer | jjanzen <jjanzen@jjanzen.ca> | 2025-01-22 12:17:02 -0600 |
commit | 8ecefa4b3fd56fc87f822f3dbefa1ce1ef6601d8 (patch) | |
tree | ababfbbdbbfe53e8ddef835af779d0d9da5da728 /src/main.zig | |
parent | 275d7f14633be3a7b16e839a5864f4c2e5886b05 (diff) |
generic io interface
Diffstat (limited to 'src/main.zig')
-rw-r--r-- | src/main.zig | 45 |
1 files changed, 17 insertions, 28 deletions
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; } |