Запомните следующий код:
enum Store {
Place { val: Vec<u8> },
}
fn subst(val: Vec<u8>, store: &mut Store) {
*store = Store::Place { val }
}
Если я правильно понял, здесь, subst
переместит val
внутрь store
, что приведет к его копированию.Есть ли способ сделать это, не копируя весь вектор?Под «копией» я имею в виду копию памяти.Насколько я понимаю, когда значение перемещается (например, vec
при вызове subst(vec, ...)
, требуется полная копия, чтобы стереть данные из стека родительской функции и разместить в стеке вызываемой функции.