Como especificar que um campo de struct deve implementar uma trait em Rust?
Olá a todos! Estou escrevendo em Rust recentemente e tive um problema com traits. Quero criar uma struct que armazena algum valor, e esse valor deve obrigatoriamente implementar uma trait específica. Por exemplo, estou escrevendo uma calculadora simples, onde há uma trait `Operation` com um método `compute`. Quero que a struct `Calculator` tenha um campo `operation`, que pode ser qualquer struct que implemente essa trait.
Aqui está o que estou tentando fazer:
```rust
trait Operation {
fn compute(&self, a: i32, b: i32) -> i32;
}
struct Calculator {
operation: Operation, // Erro: trait objects must include the `dyn` keyword
}
fn main() {
let add = AddOperation;
let calc = Calculator { operation: add };
println!("{}", calc.operation.compute(5, 3));
}
```
O compilador