В Rust 1.26 была стабилизирована новая функция под названием Impl Trait, которая позволяет функции возвращать закрытое закрытое окно.Но как определить тип поля структуры для неупакованного замыкания, код ниже не компилируется:
fn return_closure() -> impl Fn() -> () {
move || {
println!("abc");
}
}
struct HoldClosure {
closure: impl Fn() -> ()
}
fn main() {
let hold_my_closure = HoldClosure {
closure: return_closure()
};
}