Есть ли простой способ передать изменяемую ссылку в значение функции `Fn (T)`? - PullRequest
0 голосов
/ 06 июля 2019

У меня есть функция init, которая принимает configure лямбду в своих параметрах:

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 Ответ

2 голосов
/ 06 июля 2019

Неясно, каков ваш точный вопрос, но я думаю, вы должны попробовал самый очевидный способ:

#[derive(Default)]
struct SomeStruct;

fn init<T>(configure: T)
where
    T: Fn(&mut SomeStruct),
{
    let mut some_struct = SomeStruct::default();
    configure(&mut some_struct);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...