Avatar ·

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...