diff options
| author | xander <xander@biltopia.org> | 2025-12-07 13:12:06 +0100 |
|---|---|---|
| committer | xander <xander@biltopia.org> | 2025-12-07 13:12:06 +0100 |
| commit | 516e6ed4a9066fa43d6159b2a0ec58416ab28013 (patch) | |
| tree | 9925207e97b9e6e1fd83a55bdb878c43071cf73a /src/main.zig | |
| download | aoc2025-516e6ed4a9066fa43d6159b2a0ec58416ab28013.tar.xz aoc2025-516e6ed4a9066fa43d6159b2a0ec58416ab28013.zip | |
solve up to day 7
Diffstat (limited to 'src/main.zig')
| -rw-r--r-- | src/main.zig | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/main.zig b/src/main.zig new file mode 100644 index 0000000..79979e4 --- /dev/null +++ b/src/main.zig @@ -0,0 +1,46 @@ +const std = @import("std"); +const print = std.debug.print; + +const day01 = @import("day01.zig"); +const day02 = @import("day02.zig"); +const day03 = @import("day03.zig"); +const day04 = @import("day04.zig"); +const day05 = @import("day05.zig"); +const day06 = @import("day06.zig"); +const day07 = @import("day07.zig"); + +pub fn main() !void { + if (std.os.argv.len != 3) { + print("Usage: {s} <day> <part> < <input> \n", .{std.os.argv[0]}); + return; + } + + var stdin_buf: [1024 * 1024]u8 = undefined; + var reader = std.fs.File.stdin().reader(&stdin_buf); + const stdin: *std.Io.Reader = &reader.interface; + + var gpa = std.heap.GeneralPurposeAllocator(.{}){}; + const allocator = gpa.allocator(); + defer { + _ = gpa.deinit(); + } + + const args = try std.process.argsAlloc(allocator); + defer std.process.argsFree(allocator, args); + + const day = std.fmt.parseInt(usize, args[1], 10) catch { + print("Not valid day format\n: {s}", .{args[1]}); + return; + }; + + try switch (day) { + 1 => day01.solve(args[2], stdin, allocator), + 2 => day02.solve(args[2], stdin, allocator), + 3 => day03.solve(args[2], stdin, allocator), + 4 => day04.solve(args[2], stdin, allocator), + 5 => day05.solve(args[2], stdin, allocator), + 6 => day06.solve(args[2], stdin, allocator), + 7 => day07.solve(args[2], stdin, allocator), + else => print("Day not yet implemented", .{}), + }; +} |
