Afin de vous familiariser avec la modélisation avec les coroutines,
écrire une machine d’états avec trois états modélisant
une requête GET qui constrituera votre coroutine. Vous
devrez à l’aide de la coroutine effectuer trois requêtes
GET concurrentes au delayserver qui se trouve
sur le repo (chacune avec un delay différent) et les join()
de façon concurrente.
Vous devez ainsi créer une struct JoinThree et une
fonction join_three qui gèrera vos trois
Future et leur complétion. Vous devez également implémenter
le trait Future pour JoinThree permettant de
poll() les trois Future. Finalement, votre
main() devra ressembler à
fn main() {
    let start = Instant::now();
    let mut future = async_main();
    while let PollState::NotReady = future.poll() {}
    println!("Elapsed time: {}", start.elapsed().as_millis());
}