Qualcuno può spiegare perché lo spostamento di valori in strutture prese in prestito è valido mentre spostarli non è? Ad esempio:Spostamento verso e da una struttura mutuata in prestito
struct S {
v: Vec<u8>
}
fn move_v_out(s: &mut S) {
let old_vecotr = s.v; // If removed, program compiles fine
s.v = vec![];
}
fn main() {
let mut v = S {
v: vec![]
};
move_v_out(&mut v);
}
In entrambi i casi, viene modificato un membro di una struttura mutuata in prestito. Tuttavia si causa un errore di compilazione.