aoc2025 @ 116d835f3bbddf182585ba5d7165e10a497d0979

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