Wie erstelle ich einen Typ, der nur verschiebbar (move), aber nicht kopierbar (Copy) in Rust ist?
Hallo zusammen! Ich habe vor kurzem angefangen, Rust zu lernen und bin auf das Konzept des Besitzes (ownership) und die Traits Copy und Clone gestoßen. Soweit ich verstanden habe, implementieren primitive Typen wie i32 oder bool Copy, sodass sie bei der Zuweisung kopiert werden und das Original verfügbar bleibt. Komplexere Typen wie String hingegen sind nur Clone, und bei der Zuweisung werden sie verschoben (move).
Aber ich habe eine Frage: Kann ich selbst einen eigenen Typ (z.B. eine Struktur) erstellen, der sich wie String verhält – also nur verschiebbar ist und nicht versehentlich kopiert werden kann? Zum Beispiel möchte ich einen Typ erstellen, der eine eindeutige ID oder eine Ressource darstellt, die nicht dupliziert werden soll. Wenn ich einfach eine Struktur deklariere und derive(Clone, Copy) hinzufüge, wird sie bei jeder Zuweisung kopiert.