aoc2025 @ master

 1const std = @import("std");
 2const day1 = @import("day1.zig");
 3const day2 = @import("day2.zig");
 4const day3 = @import("day3.zig");
 5const day4 = @import("day4.zig");
 6const day5 = @import("day5.zig");
 7const day6 = @import("day6.zig");
 8
 9pub fn main() !void {
10    var gpa = std.heap.GeneralPurposeAllocator(.{ .thread_safe = false }){};
11    const alloc = gpa.allocator();
12    defer _ = gpa.detectLeaks();
13
14    for (1..std.os.argv.len) |i| {
15        const day = std.mem.span(std.os.argv[i]);
16
17        if (std.mem.eql(u8, "day1", day)) {
18            const input = @embedFile("./input/day1");
19            print(day1.pt1(input));
20            print(day1.pt2(input));
21        } else if (std.mem.eql(u8, "day2", day)) {
22            const input = @embedFile("./input/day2");
23            print(day2.pt1(input));
24            print(day2.pt2(input));
25        } else if (std.mem.eql(u8, "day3", day)) {
26            const input = @embedFile("./input/day3");
27            print(day3.pt1(input));
28            print(day3.pt2(input));
29        } else if (std.mem.eql(u8, "day4", day)) {
30            const input = @embedFile("./input/day4");
31            print(day4.pt1(input));
32            print(day4.pt2(input));
33        } else if (std.mem.eql(u8, "day5", day)) {
34            const input = @embedFile("./input/day5");
35            print(try day5.pt1(alloc, input));
36            print(try day5.pt2(alloc, input));
37        } else if (std.mem.eql(u8, "day6", day)) {
38            const input = @embedFile("./input/day6");
39            print(day6.pt1(input));
40            print(day6.pt2(input));
41        }
42    }
43}
44
45fn print(res: anytype) void {
46    const ArgsType = @TypeOf(res);
47    const res_type_info = @typeInfo(ArgsType);
48    if (res_type_info == .int) {
49        std.debug.print("{d}\n", .{res});
50    } else {
51        @compileError("print not implemented for this type");
52    }
53}