Zum Inhalt springen
Rust-Compiler-FehlerFehler
E0507

E0507 — Wert kann nicht aus ausgeliehener Referenz verschoben werden

Sie versuchen, einen Wert aus einer Referenz zu verschieben, was die Referenz ungültig hinterlassen würde.

rustcargo

Was verursacht diesen Fehler

Das Verschieben eines Werts aus einer Referenz würde die ursprünglichen Daten ungültig machen. Dies tritt häufig auf, wenn versucht wird, ein Feld aus einem ausgeliehenen Struct zurückzugeben oder bei Pattern-Matching auf einer Referenz.

So beheben Sie ihn

Klonen Sie den Wert statt ihn zu verschieben. Verwenden Sie .to_owned() oder .clone(), um eine owned Kopie zu erstellen. Verwenden Sie ref beim Pattern-Matching, um auszuleihen statt zu verschieben. Geben Sie eine Referenz statt eines owned Werts zurück.

Offizielle Dokumentation

Verwandte Fehlercodes