@@ -10,23 +10,46 @@ use {
1010/// solves and displays pt1 and pt2 of `day`
1111pub 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