When using generators (or async) all type variables must be bound so a generator can be constructed.
Erroneous code example:
async fn bar<T>() -> () {}
async fn foo() {
bar().await; // error: cannot infer type for `T`
}
RunIn the above example T
is unknowable by the compiler.
To fix this you must bind T
to a concrete type such as String
so that a generator can then be constructed:
async fn bar<T>() -> () {}
async fn foo() {
bar::<String>().await;
// ^^^^^^^^ specify type explicitly
}
Run