Avatar ·

Wie gebe ich an, dass ein Strukturfeld ein Trait implementieren muss in Rust?

Hallo zusammen! Ich schreibe erst seit kurzem in Rust und habe ein Problem mit Traits. Ich möchte eine Struktur erstellen, die einen Wert speichert, und dieser Wert muss zwingend ein bestimmtes Trait implementieren. Zum Beispiel schreibe ich einen einfachen Taschenrechner, bei dem es ein Trait `Operation` mit einer Methode `compute` gibt. Ich möchte, dass die Struktur `Calculator` ein Feld `operation` hat, das jede Struktur sein kann, die dieses Trait implementiert. Hier ist, was ich versuche: ```rust trait Operation { fn compute(&self, a: i32, b: i32) -> i32; } struct Calculator { operation: Operation, // Fehler: trait objects must include the `dyn` keyword } fn main() { let add = AddOperation; let calc = Calculator { operation: add }; println!("{}", calc.operation.compute(5, 3)); } ``` Der Compiler