Rust में स्ट्रक्चर फील्ड को ट्रेट इम्प्लीमेंट करने के लिए कैसे निर्दिष्ट करें?
सभी को नमस्ते! मैं हाल ही में Rust में कोड लिख रहा हूँ, और मुझे ट्रेट्स के साथ एक समस्या आई है। मैं एक स्ट्रक्चर बनाना चाहता हूँ जो अपने अंदर कुछ वैल्यू स्टोर करे, और यह वैल्यू अनिवार्य रूप से एक निश्चित ट्रेट को इम्प्लीमेंट करे। उदाहरण के लिए, मैं एक सरल कैलकुलेटर बना रहा हूँ, जहाँ `Operation` नामक ट्रेट है जिसमें `compute` मेथड है। मैं चाहता हूँ कि `Calculator` स्ट्रक्चर में `operation` नामक फील्ड हो, जो इस ट्रेट को इम्प्लीमेंट करने वाला कोई भी स्ट्रक्चर हो सके।
मैं यह करने की कोशिश कर रहा हूँ:
```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));
}
```
कंपाइलर