day02 finished
This commit is contained in:
parent
68fefd064a
commit
eb1ce68486
9 changed files with 2758 additions and 30 deletions
|
|
@ -1,6 +1,31 @@
|
|||
mod day01;
|
||||
pub mod day_provider;
|
||||
mod day02;
|
||||
mod template;
|
||||
|
||||
pub use template::DayTrait;
|
||||
pub use template::ResultType;
|
||||
|
||||
pub mod day_provider {
|
||||
use super::*;
|
||||
use thiserror::Error;
|
||||
|
||||
const MAX_DAY: usize = 2;
|
||||
|
||||
pub fn get_day(day_num: usize) -> Result<Box<dyn DayTrait>, ProviderError> {
|
||||
match day_num {
|
||||
1 => Ok(Box::new(day01::Day)),
|
||||
2 => Ok(Box::new(day02::Day)),
|
||||
_ => Err(ProviderError::InvalidNumber(day_num)),
|
||||
}
|
||||
}
|
||||
|
||||
pub fn get_all_days() -> impl Iterator<Item = Box<dyn DayTrait>> {
|
||||
(1..=MAX_DAY).map(|day_num| get_day(day_num).expect("Must never happen"))
|
||||
}
|
||||
|
||||
#[derive(Debug, Error)]
|
||||
pub enum ProviderError {
|
||||
#[error("Not a valid day number: {0}")]
|
||||
InvalidNumber(usize),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue