Как в Rust можно определить функцию, аргументом которой является замыкание с аргументом-замыканием?
Вариант с динамической диспетчеризацией работает, но со статической компилятор сообщает об ошибке «the type of this value must be known in this context»:
fn dyn1(f: &Fn(i32)) {
}
fn dyn2(f: &Fn(&Fn(i32))) {
}
fn stat1<F: Fn(i32)>(f: F) {
}
// ???
fn stat2<F: Fn(i32), F2: Fn(F)>(f: F2) {
}
fn main() {
    // x - целое число, динамическая диспетчеризация
    dyn1(&|x| { });
    // fx - замыкание с целым аргументом, динамическая диспетчеризация
    dyn2(&|fx| {fx(1)});
    // x - целое число, статическая диспетчеризация
    stat1(|x| { });
    // fx - замыкание с целым аргументом, статическая диспетчеризация
    stat2(|fx| {fx(1)}); // ошибка: the type of this value must be known in this context
}









