1const std = @import("std");
2const day1 = @import("day1.zig");
3const day2 = @import("day2.zig");
4const day3 = @import("day3.zig");
5
6pub export fn main() void {
7 for (1..std.os.argv.len) |i| {
8 const day = std.mem.span(std.os.argv[i]);
9
10 if (std.mem.eql(u8, "day1", day)) {
11 const input = @embedFile("./input/day1");
12 print(day1.pt1(input));
13 print(day1.pt2(input));
14 } else if (std.mem.eql(u8, "day2", day)) {
15 const input = @embedFile("./input/day2");
16 print(day2.pt1(input));
17 print(day2.pt2(input));
18 } else if (std.mem.eql(u8, "day3", day)) {
19 const input = @embedFile("./input/day3");
20 print(day3.pt1(input));
21 print(day3.pt2(input));
22 }
23 }
24}
25
26fn print(res: anytype) void {
27 const ArgsType = @TypeOf(res);
28 const res_type_info = @typeInfo(ArgsType);
29 if (res_type_info == .int) {
30 std.debug.print("{d}\n", .{res});
31 } else {
32 @compileError("print not implemented for this type");
33 }
34}