Idiomatisches Kopieren/Klonen eines Vektors in einer parametrisierten Funktion in Rust
Hallo! Ich habe vor kurzem angefangen, Rust zu lernen, und bin auf ein Problem bei der Arbeit mit Vektoren in generischen Funktionen gestoßen. Ich habe eine Funktion, die einen Vektor nimmt und eine Kopie mit einigen Änderungen zurückgeben soll. Aber ich verstehe nicht, wie man den Vektor innerhalb der Funktion richtig kopiert, wenn der Elementtyp generisch ist.
Hier ist ein Beispiel, das nicht kompiliert:
```rust
fn duplicate_vector(vec: Vec) -> Vec {
let mut new_vec = vec.clone(); // Fehler: T implementiert Clone nicht
new_vec.push(/* etwas */);
new_vec
}
```
Der Compiler beschwert sich, dass `T` das `Clone`-Trait nicht implementiert. Ich verstehe, dass man eine `Clone`-Einschränkung für den Typ `T` hinzufügen muss, aber das scheint eine unflexible Lösung zu sein. Was ist, wenn ich nur bestimmte Elemente kopieren möchte oder `Clone` für `T` gar nicht fordern will?