Para tipos que são armazenados inteiramente na pilha e têm um tamanho conhecido em tempo de compilação (como inteiros, booleanos, números de ponto flutuante, caracteres e tuplas contendo apenas esses tipos), o Rust faz uma cópia bit a bit. Esses tipos implementam a _trait_ `Copy`. ```rust fn main() { let x = 5; // x é um i32, que é armazenado na pilha. let y = x; // x é copiado para y. // Ambos x e y são válidos. println!("x = {}, y = {}", x, y); // Ambos x e y podem ser usados. } ``` Não há "movimentação" aqui no sentido de invalidar `x`, porque copiar alguns bytes na pilha é muito barato e não há dados no _heap_ para se preocupar com _double-freeing_. **:: Referência ::** [What is Ownership? - The Rust Programming Language](https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html)