У меня есть итерация:
fn foo<F>(mut callback: F)
where F: FnMut(MyStruct)
{
// produce an instance of MyStruct
callback(my_struct);
for ... { // some conditions
foo(callback)
}
}
И закрытие может быть:
let my_vec = vec![];
let mut callback = |my_struct: MyStruct| {my_vec.push(my_struct);};
foo(callback);
В моем цикле for
владение callback
перемещено, поэтомукод выше не работает. Я пытаюсь заменить параметр на mut callback: &mut F
и использую foo(&mut callback)
, который все еще не работает, и компилятор говорит «переполнение при оценке требования».