day02 finished

This commit is contained in:
Ruediger Ludwig 2023-01-27 07:48:33 +01:00
parent 68fefd064a
commit eb1ce68486
9 changed files with 2758 additions and 30 deletions

View file

@ -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),
}
}