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!
No answers yet.
Inicia sesión para dejar una respuesta
Blogs