是否有一种简单的方法将可变引用传递给函数值`Fn(T)`?

时间:2019-07-06 11:02:03

标签: rust

我有一个函数init,其参数中包含一个configure lambda:

fn init<T>(configure: T)
where
    T: Fn<Rc<RefCell<SomeStruct>>>,
{
    let mut some_struct: SomeStruct = /*...*/;
    configure(&mut some_struct); // what to do here?
}

如何创建这样的东西?

1 个答案:

答案 0 :(得分:2)

目前尚不清楚您的确切问题是什么,但我想您应该 尝试了最明显的方法:

#[derive(Default)]
struct SomeStruct;

fn init<T>(configure: T)
where
    T: Fn(&mut SomeStruct),
{
    let mut some_struct = SomeStruct::default();
    configure(&mut some_struct);
}