Моя цель - реализовать функцию, которая возвращает другую функцию, которая возвращает некоторую черту. Чтобы быть более точным c, возвращаемая функция должна сама возвращать Future.
Чтобы вернуть функцию, которая возвращает конкретный тип, мы, очевидно, можем сделать это:
fn returns_closure() -> impl Fn(i32) -> i32 {
|x| x + 1
}
Но что если вместо i32
мы хотим вернуть Future
?
, я попробовал следующее:
use futures::Future;
fn factory() -> (impl Fn() -> impl Future) {
|| async {
// some async code
}
}
Это не работает, поскольку второе ключевое слово impl
не разрешено:
error[E0562] `impl Trait` not allowed outside of function and inherent method return types
Как лучше всего решить эту проблему?