//@ check-pass
//@ edition:2021

use std::future::Future;

async fn yield_now() {}

trait AsyncIterator {
    type Item;

    #[allow(async_fn_in_trait)]
    async fn next(&mut self) -> Option<Self::Item>;
}

struct YieldingRange {
    counter: u32,
    stop: u32,
}

impl AsyncIterator for YieldingRange {
    type Item = u32;

    async fn next(&mut self) -> Option<Self::Item> {
        if self.counter == self.stop {
            None
        } else {
            let c = self.counter;
            self.counter += 1;
            yield_now().await;
            Some(c)
        }
    }
}

async fn async_main() {
    let mut x = YieldingRange { counter: 0, stop: 10 };

    while let Some(v) = x.next().await {
        println!("Hi: {v}");
    }
}

fn main() {
    let _ = async_main();
}
