| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #[macro_use]
- extern crate clap;
- mod day_1;
- mod day_2;
- mod day_3;
- fn main() {
- use clap::App;
- let yml = load_yaml!("cli.yml");
- let matches = App::from_yaml(yml).get_matches();
- let day = opt_str_to_int(matches.value_of("day"));
- let puzzle = opt_str_to_int(matches.value_of("puzzle"));
- match day {
- 1 => match puzzle {
- 1 => day_1::puzzle_1::solve(),
- 2 => day_1::puzzle_2::solve(),
- _ => println!("unavailable puzzle given!"),
- },
- 2 => match puzzle {
- 1 => day_2::puzzle_1::solve(),
- 2 => day_2::puzzle_2::solve(),
- _ => println!("unavailable puzzle given!"),
- },
- 3 => match puzzle {
- 1 => day_3::puzzle_1::solve(),
- 2 => day_3::puzzle_2::solve(),
- _ => println!("unavailable puzzle given!"),
- },
- _ => println!("unavailable day given!"),
- }
- }
- fn opt_str_to_int(val: Option<&str>) -> i32 {
- match val {
- Some(val) => val.parse::<i32>().unwrap(),
- None => panic!("value not supplied! type --help"),
- }
- }
|