либо, так в чем смысл?

function Aрые принимаютfunction B в качестве параметра сноваfunction B приниматьfunction C в качестве параметра. Я пытаюсь синтаксис, как показано ниже, но это дает мне ошибку:

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`

По какой-то причине я не могу использовать&dyn ключевое слово:

fn a(b: impl Fn(&dyn Fn() -> ()) -> ()) -> () {
 // ...
} 

Есть ли другие способы сделать это?

И я не знаю почемувложеннымиimpl Trait вызвать ошибку.

Ответы на вопрос(1)

Ваш ответ на вопрос