Digamos que tengo el siguiente fragmento (área de juegos )
struct A {
pub val: u32
}
const GLOBAL_A: A = A {val: 2};
fn main() {
let some_a: A = GLOBAL_A;
let other_a: A = GLOBAL_A;
println!("double val = {}", some_a.val + other_a.val);
}
Como A
no es ni Clone
tampoco Copy
, supondría que el valor de GLOBAL_A
se movería. Eso no tiene mucho sentido para una constante y, como se muestra, no puede ser el caso de todos modos, ya que se puede "mover" dos veces.
¿Cuáles son las reglas que permiten que el fragmento de código anterior funcione considerando A
que no es Clone
ni Copy
?