advent-of-code/aoc2018/src/main.rs

34 lines
815 B
Rust
Raw Normal View History

2019-11-15 00:14:07 +01:00
use std::env;
2019-12-01 22:22:12 +01:00
use aoc::Result;
2019-11-15 00:14:07 +01:00
use aoc2018::day01;
use aoc2018::day02;
2019-11-15 17:25:40 +01:00
use aoc2018::day03;
2019-11-25 19:04:48 +01:00
use aoc2018::day04;
2019-11-22 17:00:32 +01:00
use aoc2018::day05;
2019-11-15 17:25:40 +01:00
2019-11-15 00:14:07 +01:00
fn main() -> Result<()> {
2019-11-25 19:04:48 +01:00
let days: &[fn() -> Result<()>] = &[day01::run, day02::run, day03::run, day04::run, day05::run];
2019-11-15 00:14:07 +01:00
let mut args = env::args();
args.next();
2019-11-15 17:25:40 +01:00
match args.next() {
Some(arg) => {
let day: usize = arg.parse().expect("Please provide a day number");
days[day - 1]().expect("error running day specified");
}
None => {
for (i, day) in days.iter().enumerate() {
let i = i + 1;
2019-11-15 17:25:40 +01:00
println!("day{}: ", i);
2019-11-18 13:56:50 +01:00
day().unwrap_or_else(|e| panic!("error running day {}: {}", i, e));
2019-11-15 17:25:40 +01:00
println!();
}
}
}
2019-11-15 00:14:07 +01:00
2019-11-15 17:25:40 +01:00
Ok(())
2019-11-15 00:14:07 +01:00
}