pub fn gen<Fut, Y, R>(fut: impl FnOnce(Yield<Y>) -> Fut) -> AsyncGen<Fut, Y>where
Fut: Future<Output = Return<R>>,
Expand description
Creates a new generator, which implements the AsyncGenerator
trait.
Also see gen!
macro for more details.
ยงExamples
use async_gen::{gen, AsyncGen, AsyncGenerator, Return};
use std::future::Future;
fn example() {
let g = gen(|mut c| async {
c.yield_(42).await;
c.return_("42")
});
check_type_1(&g);
check_type_2(&g);
}
fn check_type_1(_: &AsyncGen<impl Future<Output = Return<&'static str>>, i32>) {}
fn check_type_2(_: &impl AsyncGenerator<Yield = i32, Return = &'static str>) {}