¿Cómo hacer cosas iguales a `impl implícito` anidado?
function A
que toman unfunction B
como parámetro, nuevamente lafunction B
tomarfunction C
como parámetro. Intento la sintaxis como a continuación, pero esto me da un error:
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 alguna razón, no puedo usar&dyn
palabra clave:
fn a(b: impl Fn(&dyn Fn() -> ()) -> ()) -> () {
// ...
}
¿Hay otras formas de hacer esto?
Y no sé por quéanidadoimpl Trait
causa un error.