Avatar ·

Cómo implementar el trait Copy en Rust para un tipo personalizado

¡Hola a todos! Soy nuevo en Rust y estoy tratando de entender los traits. Tengo una estructura simple que representa un punto en el plano: ```rust struct Point { x: i32, y: i32, } ``` Quiero que esta estructura se comporte como un tipo simple que se pueda copiar implícitamente, como, por ejemplo, `i32` o `bool`. Es decir, quiero que al asignar `let p2 = p1;` la variable `p1` siga siendo accesible (como con los números), y no se mueva (como con `String` o `Vec`). He oído que para esto es necesario implementar el trait `Copy`. Pero cuando intento escribir: ```rust impl Copy for Point {} ``` El compilador da un error: `the trait `Copy` cannot be implemented for this type; the type does not implement `Clone`". No entiendo por qué sucede esto. ¿Qué estoy haciendo mal? ¿Necesito también implementar `Clone`? ¿O estoy declarando la estructura incorrectamente? Expliquen, por favor, cómo hacer correctamente para que mis estructuras se copien, no se muevan. ¡Gracias de antemano!