Como fazer coisas iguais ao `impl Trait` aninhad
function A
que leva umfunction B
como parâmetro, novamente ofunction B
tomafunction C
como parâmetro. Eu tento a sintaxe como abaixo, mas isso me dá um erro:
fn a(b: impl Fn(impl Fn() -> ()) -> ()) -> () {
// ...
}
error[E0666]: nested `impl Trait` is not allowed
--> src/main.rs:2:21
|
2 | fn a(b: impl Fn(impl Fn() -> ()) -> ()) -> () {
| --------^^^^^^^^^^^^^^^-------
| | |
| | nested `impl Trait` here
| outer `impl Trait`
Por alguma razão, não consigo usar&dyn
palavra-chave:
fn a(b: impl Fn(&dyn Fn() -> ()) -> ()) -> () {
// ...
}
Existem outras maneiras de fazer isso?
E eu não sei por quenestedimpl Trait
causa um erro.