mod solutions; mod utils; use std::{error::Error, time::SystemTime}; use solutions::*; use crate::utils::get_input; fn main() -> Result<(), Box> { let days: Vec> = vec![Box::new(day01::Day01 {}), Box::new(day02::Day02 {})]; // Run through and generate solutions for day in days.iter().rev() { println!("========== Day {} ==========", day.get_day()); let start_time = SystemTime::now(); println!( "Part1 Test: {}", day.part1(get_input(day.get_day(), utils::InputType::Test1)?.as_mut())? ); println!( "Part1 Result: {}", day.part1(get_input(day.get_day(), utils::InputType::Actual)?.as_mut())? ); println!( "Part2 Test: {}", day.part2(get_input(day.get_day(), utils::InputType::Test2)?.as_mut())? ); println!( "Part2 Result: {}", day.part2(get_input(day.get_day(), utils::InputType::Actual)?.as_mut())? ); println!( "========= {}ms =========", SystemTime::now().duration_since(start_time)?.as_millis() ); } Ok(()) }