1- use {
2- path:: Path ,
3- std:: fs:: File ,
4- std:: io:: { self , BufRead } ,
5- std:: { env, path} ,
6- } ;
1+ use std:: env;
72
3+ mod helpers;
84mod solutions;
95
106const SOLVED : [ u8 ; 2 ] = [ 1 , 2 ] ;
@@ -16,47 +12,15 @@ fn main() {
1612 if args. len ( ) == 1 {
1713 // if no arguments given, run all available solutions
1814 SOLVED . into_iter ( ) . for_each ( |day| {
19- solve_day ( day) ;
15+ helpers :: solve_day ( day) ;
2016 } )
2117 } else {
2218 // if arguments are given, run the respective solutions
2319 args. into_iter ( ) . skip ( 1 ) . for_each ( |arg| {
2420 let day = arg
2521 . parse ( )
26- . expect ( "not able to parse command line argument {arg}" ) ;
27- solve_day ( day) ;
22+ . unwrap_or_else ( |_| panic ! ( "not able to parse command line argument {arg}" ) ) ;
23+ helpers :: solve_day ( day) ;
2824 } )
2925 }
3026}
31-
32- /// call functions to solve pt1 and pt2 of `day`
33- fn solve_day ( day : u8 ) {
34- let filename = format ! ( "./data/inputs/input{day:02}.txt" ) ;
35- match day {
36- 1 => {
37- let ( answer1, time1) = solutions:: day01:: pt1 ( & filename) ;
38- let ( answer2, time2) = solutions:: day01:: pt2 ( & filename) ;
39-
40- println ! ( "Day {day:02}" ) ;
41- println ! ( " part 1: {answer1}, elapsed time: {time1} ms" ) ;
42- println ! ( " part 2: {answer2}, elapsed time: {time2} ms" ) ;
43- }
44- 2 => {
45- let ( answer1, time1) = solutions:: day02:: pt1 ( & filename) ;
46- let ( answer2, time2) = solutions:: day02:: pt2 ( & filename) ;
47-
48- println ! ( "Day {day:02}" ) ;
49- println ! ( " part 1: {answer1}, elapsed time: {time1} ms" ) ;
50- println ! ( " part 2: {answer2}, elapsed time: {time2} ms" ) ;
51- }
52- _ => println ! ( "Day {day:02}\n not implemented!" ) ,
53- }
54- }
55-
56- /// returns an iterator over each line in the input file
57- fn read_lines < P > ( filename : P ) -> std:: io:: Lines < std:: io:: BufReader < std:: fs:: File > >
58- where
59- P : AsRef < Path > ,
60- {
61- io:: BufReader :: new ( File :: open ( filename) . expect ( "not able to open file" ) ) . lines ( )
62- }
0 commit comments