mirror of
https://github.com/bertptrs/adventofcode.git
synced 2025-12-25 21:00:31 +01:00
Slightly nicer day parsing.
This commit is contained in:
@@ -14,16 +14,19 @@ pub mod day16;
|
|||||||
pub mod day23;
|
pub mod day23;
|
||||||
pub mod day24;
|
pub mod day24;
|
||||||
|
|
||||||
fn get_impl(day: i32) -> Box<common::Solution> {
|
fn get_impl(day: &str) -> Box<common::Solution> {
|
||||||
match day {
|
match day.parse() {
|
||||||
1 => { Box::new(day1::Day1::new()) }
|
Ok(1) => { Box::new(day1::Day1::new()) }
|
||||||
12 => { Box::new(day12::Day12::new()) }
|
Ok(12) => { Box::new(day12::Day12::new()) }
|
||||||
15 => { Box::new(day15::Day15::new()) }
|
Ok(15) => { Box::new(day15::Day15::new()) }
|
||||||
16 => { Box::new(day16::Day16::new()) }
|
Ok(16) => { Box::new(day16::Day16::new()) }
|
||||||
23 => { Box::new(day23::Day23::new()) }
|
Ok(23) => { Box::new(day23::Day23::new()) }
|
||||||
24 => { Box::new(day24::Day24::new()) }
|
Ok(24) => { Box::new(day24::Day24::new()) }
|
||||||
_ => {
|
Ok(val) => {
|
||||||
panic!("Unimplemented day {}", day)
|
panic!("Unimplemented day {}", val)
|
||||||
|
},
|
||||||
|
Err(_) => {
|
||||||
|
panic!("Invalid day");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -48,9 +51,7 @@ fn main() {
|
|||||||
.takes_value(true))
|
.takes_value(true))
|
||||||
.get_matches();
|
.get_matches();
|
||||||
|
|
||||||
let day: i32 = (&matches.value_of("day").unwrap()).parse()
|
let mut implementation = get_impl(&matches.value_of("day").unwrap());
|
||||||
.expect("Invalid int");
|
|
||||||
let mut implementation = get_impl(day);
|
|
||||||
let mut data: Box<io::Read> = match matches.value_of("input") {
|
let mut data: Box<io::Read> = match matches.value_of("input") {
|
||||||
Some(filename) => { Box::new(fs::File::open(filename).unwrap()) }
|
Some(filename) => { Box::new(fs::File::open(filename).unwrap()) }
|
||||||
None => { Box::new(io::stdin()) }
|
None => { Box::new(io::stdin()) }
|
||||||
@@ -72,7 +73,7 @@ mod tests {
|
|||||||
// Verify that we can load all days
|
// Verify that we can load all days
|
||||||
let last_implemented = 1;
|
let last_implemented = 1;
|
||||||
for d in 1..(last_implemented + 1) {
|
for d in 1..(last_implemented + 1) {
|
||||||
get_impl(d);
|
get_impl(&format!("{}", d));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user