A crate for racing Future
s and getting ranked results back.
```rust use tokio::time::sleep; use std::time::Duration;
use speedracer::RaceTrack;
let mut racetrack = RaceTrack::disqualifyafter(Duration::from_millis(500));
racetrack.addracer("Racer #1", async move { println!("Racer #1 is starting"); sleep(std::time::Duration::from_millis(100)).await; println!("Racer #1 is ending");
Ok(())
}); racetrack.addracer("Racer #2", async move { println!("Racer #2 is starting"); sleep(std::time::Duration::from_secs(200)).await; println!("Racer #2 is ending");
Ok(())
}); racetrack.addracer("Racer #3", async move { println!("Racer #3 is starting"); sleep(std::time::Duration::from_secs(700)).await; println!("Racer #3 is ending");
Ok(())
});
racetrack.run().await; let rankings = racetrack.rankings();
println!("Rankings: {:?}", rankings);
asserteq!(rankings[0].name, "Racer #1"); asserteq!(rankings[1].name, "Racer #2"); asserteq!(rankings[2].name, "Racer #3"); asserteq!(rankings[2].disqualified, true);
```