mod solutions; mod utils; use std::error::Error; use solutions::*; #[tokio::main] async fn main() -> Result<(), Box> { let days: Vec> = vec![ Box::new(day01::Day01 {}), Box::new(day02::Day02 {}), Box::new(day03::Day03 {}), Box::new(day04::Day04 {}), Box::new(day05::Day05 {}), Box::new(day06::Day06 {}), Box::new(day07::Day07 {}), ]; let mut t = vec![]; // Run through and generate solutions for day in days.leak().iter().rev() { let task = tokio::spawn(async { day.run().unwrap() }); t.push(task); } let mut days = vec![]; for thread in t { days.push(thread.await?); } for day in days { println!("========= Day {} ==========", day.day); println!("Part1 Result: {}", day.part1); println!("Part2 Result: {}", day.part2); println!("========= {}ms =========", day.time.as_millis()); } Ok(()) }