Parallelised the execution of each day
This commit is contained in:
+20
-4
@@ -5,8 +5,9 @@ use std::error::Error;
|
||||
|
||||
use solutions::*;
|
||||
|
||||
fn main() -> Result<(), Box<dyn Error>> {
|
||||
let days: Vec<Box<dyn Solution>> = vec![
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<(), Box<dyn Error>> {
|
||||
let days: Vec<Box<dyn Solution + Sync>> = vec![
|
||||
Box::new(day01::Day01 {}),
|
||||
Box::new(day02::Day02 {}),
|
||||
Box::new(day03::Day03 {}),
|
||||
@@ -15,9 +16,24 @@ fn main() -> Result<(), Box<dyn Error>> {
|
||||
Box::new(day06::Day06 {}),
|
||||
];
|
||||
|
||||
let mut t = vec![];
|
||||
|
||||
// Run through and generate solutions
|
||||
for day in days.iter().rev() {
|
||||
day.run()?;
|
||||
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(())
|
||||
|
||||
Reference in New Issue
Block a user