Skip to content

Commit b53817d

Browse files
committed
solve! macro
1 parent 6cd284d commit b53817d

File tree

1 file changed

+35
-12
lines changed

1 file changed

+35
-12
lines changed

src/helpers.rs

Lines changed: 35 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -10,23 +10,46 @@ use {
1010
/// solves and displays pt1 and pt2 of `day`
1111
pub fn solve_day(day: u8) {
1212
let filename = format!("./data/inputs/input{day:02}.txt");
13-
match day {
14-
1 => {
15-
let (answer1, time1) = solutions::day01::pt1(&filename);
16-
let (answer2, time2) = solutions::day01::pt2(&filename);
1713

18-
println!("Day {day:02}");
19-
println!(" part 1: {answer1}, elapsed time: {time1} ms");
20-
println!(" part 2: {answer2}, elapsed time: {time2} ms");
21-
}
22-
2 => {
23-
let (answer1, time1) = solutions::day02::pt1(&filename);
24-
let (answer2, time2) = solutions::day02::pt2(&filename);
14+
/// the macro takes a `dayXX` submodule and displays its `dayXX::pt1` and `dayXX::pt2` solutions
15+
macro_rules! solve {
16+
($dayXX:ident) => {{
17+
let (answer1, time1) = solutions::$dayXX::pt1(&filename);
18+
let (answer2, time2) = solutions::$dayXX::pt2(&filename);
2519

2620
println!("Day {day:02}");
2721
println!(" part 1: {answer1}, elapsed time: {time1} ms");
2822
println!(" part 2: {answer2}, elapsed time: {time2} ms");
29-
}
23+
}};
24+
}
25+
26+
// solving the `day`
27+
match day {
28+
1 => solve!(day01),
29+
2 => solve!(day02),
30+
// 3 => solve!(day03),
31+
// 4 => solve!(day04),
32+
// 5 => solve!(day05),
33+
// 6 => solve!(day06),
34+
// 7 => solve!(day07),
35+
// 8 => solve!(day08),
36+
// 9 => solve!(day09),
37+
// 10 => solve!(day010),
38+
// 11 => solve!(day011),
39+
// 12 => solve!(day012),
40+
// 13 => solve!(day013),
41+
// 14 => solve!(day014),
42+
// 15 => solve!(day015),
43+
// 16 => solve!(day016),
44+
// 17 => solve!(day017),
45+
// 18 => solve!(day018),
46+
// 19 => solve!(day019),
47+
// 20 => solve!(day020),
48+
// 21 => solve!(day021),
49+
// 22 => solve!(day022),
50+
// 23 => solve!(day023),
51+
// 24 => solve!(day024),
52+
// 25 => solve!(day025),
3053
_ => println!("Day {day:02}\n not implemented!"),
3154
}
3255
}

0 commit comments

Comments
 (0)