diff --git a/src/input/day01_test b/src/input/day01_test1 similarity index 100% rename from src/input/day01_test rename to src/input/day01_test1 diff --git a/src/input/day01_test2 b/src/input/day01_test2 new file mode 100644 index 0000000..4316a6b --- /dev/null +++ b/src/input/day01_test2 @@ -0,0 +1,7 @@ +two1nine +eightwothree +abcone2threexyz +xtwone3four +4nineeightseven2 +zoneight234 +7pqrstsixteen \ No newline at end of file diff --git a/src/input/day02 b/src/input/day02 new file mode 100644 index 0000000..e69de29 diff --git a/src/input/day02_test1 b/src/input/day02_test1 new file mode 100644 index 0000000..e69de29 diff --git a/src/input/day02_test2 b/src/input/day02_test2 new file mode 100644 index 0000000..e69de29 diff --git a/src/main.rs b/src/main.rs index 9d8cb66..717043e 100644 --- a/src/main.rs +++ b/src/main.rs @@ -3,21 +3,24 @@ mod solutions; use std::error::Error; -use solutions::{ - dayxx::Solution, - day01 -}; +use solutions::{dayxx::Solution, *}; use crate::utils::get_input; fn main() -> Result<(), Box>{ - // Day 1 - let day01 = day01::Day01{}; - println!("Day01 Part1 Test: {}", day01.part1(get_input(day01.get_day(), utils::InputType::Test)?.as_mut())?); - println!("Day01 Part1 Result: {}", day01.part1(get_input(day01.get_day(), utils::InputType::Actual)?.as_mut())?); - println!("Day01 Part2 Test: {}", day01.part2(get_input(day01.get_day(), utils::InputType::Test)?.as_mut())?); - println!("Day01 Part2 Result: {}", day01.part2(get_input(day01.get_day(), utils::InputType::Actual)?.as_mut())?); + let days: Vec> = vec![ + Box::new(day01::Day01{}), + Box::new(day02::Day02{}) + ]; + + for day in days { + println!("Day{} Part1 Test: {}", day.get_day(), day.part1(get_input(day.get_day(), utils::InputType::Test1)?.as_mut())?); + println!("Day{} Part1 Result: {}", day.get_day(), day.part1(get_input(day.get_day(), utils::InputType::Actual)?.as_mut())?); + + println!("Day{} Part2 Test: {}", day.get_day(), day.part2(get_input(day.get_day(), utils::InputType::Test2)?.as_mut())?); + println!("Day{} Part2 Result: {}", day.get_day(), day.part2(get_input(day.get_day(), utils::InputType::Actual)?.as_mut())?); + } Ok(()) } diff --git a/src/solutions/day02.rs b/src/solutions/day02.rs new file mode 100644 index 0000000..9910aae --- /dev/null +++ b/src/solutions/day02.rs @@ -0,0 +1,27 @@ +use super::dayxx::Solution; + +pub struct Day02 {} + +impl Solution for Day02 { + fn part1( + &self, + input: &mut Vec, + ) -> Result, Box> { + Ok(Box::new("Ready")) + } + + fn part2( + &self, + input: &mut Vec, + ) -> Result, Box> { + Ok(Box::new("Ready")) + } + + fn get_day(&self) -> u8 { + 2 + } +} + +impl Day02 { + +} diff --git a/src/solutions/mod.rs b/src/solutions/mod.rs index 35624c5..1dd63a2 100644 --- a/src/solutions/mod.rs +++ b/src/solutions/mod.rs @@ -1,3 +1,4 @@ pub mod dayxx; pub mod day01; +pub mod day02; diff --git a/src/utils.rs b/src/utils.rs index 0c226c2..b860d73 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -6,7 +6,8 @@ use std::{ /// Enum used to specify input pub enum InputType { - Test, + Test1, + Test2, Actual, } @@ -14,7 +15,8 @@ pub enum InputType { pub fn get_input(day: u8, input: InputType) -> Result, Box> { // Find Input File Name let file_name = match input { - InputType::Test => format!("src/input/day{:02}_test", day), + InputType::Test1 => format!("src/input/day{:02}_test1", day), + InputType::Test2 => format!("src/input/day{:02}_test2", day), InputType::Actual => format!("src/input/day{:02}", day), };