struct LargeObject();
struct HugeObject();
let mut large_mutable_objects = Vec::<LargeObject>::new();
let immutable_tuples = Vec::<(i32, HugeObject)>::new();
for (foo, &(id, ref bar)) in large_mutable_objects.iter_mut().zip(immutable_tuples.iter()) {
unimplemented!();
}
}
Ключевой момент тут этот: for (foo, &(id, ref bar)) - я хочу, чтобы foo забиндилось как &mut LargeObject, дальше id как i32 (без ссылки, копируемый тип), и bar как &HugeObject. Код выше выглядит правильным (для меня), но компилятор ругается:
cannot bind by-move and by-ref in the same pattern
Как победить? Чтобы не было двойных референсов, и чтобы id по значению?
линк на playgraound?
Обсуждают сегодня