aboutsummaryrefslogtreecommitdiff
path: root/src/main.zig
diff options
context:
space:
mode:
authorjjanzen <jjanzen@jjanzen.ca>2025-01-22 14:22:12 -0600
committerjjanzen <jjanzen@jjanzen.ca>2025-01-22 14:22:12 -0600
commit14c2530817f20986b51f611ef637d09f43aac23c (patch)
treecc948750173fd7c0aba570f462b65ad1fe405121 /src/main.zig
parent8ecefa4b3fd56fc87f822f3dbefa1ce1ef6601d8 (diff)
fix memory leak and implement stub front end
Diffstat (limited to 'src/main.zig')
-rw-r--r--src/main.zig43
1 files changed, 14 insertions, 29 deletions
diff --git a/src/main.zig b/src/main.zig
index f55935d..9584038 100644
--- a/src/main.zig
+++ b/src/main.zig
@@ -1,38 +1,23 @@
const std = @import("std");
const IO = @import("frontend/ncurses.zig").IO;
-const Action = @import("actions.zig").Action;
+const run = @import("run.zig");
-fn run(allocator: std.mem.Allocator) !void {
- var io = try IO.init(allocator);
- defer {
- io.deinit();
- }
-
- try io.displayMessage("Initialized");
-
- var action = Action.illegal;
- var tick_count: usize = 0;
- while (action != Action.exit) {
- const str = try std.fmt.allocPrint(allocator, "{}", .{tick_count});
- defer allocator.free(str);
- try io.displayMessage(str);
+pub fn main() u8 {
+ var status: u8 = 0;
- action = try io.waitForTick();
- switch (action) {
- Action.tick => {
- tick_count += 1;
- },
- else => {},
+ var gpa = std.heap.GeneralPurposeAllocator(.{}){};
+ const allocator = gpa.allocator();
+ defer {
+ const deinit_status = gpa.deinit();
+ if (deinit_status == .leak) {
+ status = 1;
}
}
-}
-pub fn main() u8 {
- var gpa = std.heap.GeneralPurposeAllocator(.{}){};
- const allocator = gpa.allocator();
- run(allocator) catch {
- return 1;
- };
+ var io = IO.init(allocator) catch return 1;
+ defer io.deinit();
+
+ run.run(allocator, &io) catch return 1;
- return 0;
+ return status;
}