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"); const day08 = @import("day08.zig"); pub fn main() !void { if (std.os.argv.len != 3) { print("Usage: {s} < \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), 8 => day08.solve(args[2], stdin, allocator), else => print("Day not yet implemented", .{}), }; }