В сигнатуру функции необходимо ввести два параметра типа: один для Fn
и один для Future
, например,
#![feature(futures_api, async_await)]
async fn foo() {}
fn run<G: std::future::Future, F: FnOnce() -> G>(f: F) {
f();
}
fn main() {
bar(foo)
}
Вы можете заменить FnOnce
на Fn
или FnMut
в зависимости от ваших потребностей.