Cómo especificar que un campo de estructura debe implementar un trait en Rust
¡Hola a todos! Llevo poco tiempo escribiendo en Rust y me encontré con un problema con los traits. Quiero crear una estructura que almacene algún valor, y ese valor debe implementar un trait específico. Por ejemplo, estoy escribiendo una calculadora simple donde hay un trait `Operation` con un método `compute`. Quiero que la estructura `Calculator` tenga un campo `operation` que pueda ser cualquier estructura que implemente este trait.
Esto es lo que intento hacer:
```rust
trait Operation {
fn compute(&self, a: i32, b: i32) -> i32;
}
struct Calculator {
operation: Operation, // Error: trait objects must include the `dyn` keyword
}
fn main() {
let add = AddOperation;
let calc = Calculator { operation: add };
println!("{}", calc.operation.compute(5, 3));
}
```
El compilador da el error: "the trait `Operation` cannot be made into an object". He leído sobre `dyn` y `Box`, pero no entiendo cuál es el enfoque correcto. ¿Necesito usar `Box`, o hay una forma con...
No answers yet.
Inicia sesión para dejar una respuesta