E0507E0507 — 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.
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.
Verwandte Fehlercodes
E0405E0405 — Trait im aktuellen Scope nicht gefunden
Ein Trait-Name wird verwendet, ist aber im aktuellen Scope weder definiert noch importiert.
clippy::clone_on_copyClippy — Clone auf Copy-Typ
Die Methode clone() wird auf einem Typ aufgerufen, der Copy implementiert.
E0382E0382 — Verwendung eines verschobenen Werts
Ein Wert wird verwendet, nachdem er in eine andere Variable oder Funktion verschoben wurde.
clippy::single_matchClippy — Einarmiges match kann als if let geschrieben werden
Ein match-Ausdruck mit nur einem sinnvollen Arm kann zu einem if let vereinfacht werden.
panic-integer-overflowPanic — Ganzzahlüberlauf
Das Programm ist abgestürzt, weil eine arithmetische Operation im Debug-Modus einen Ganzzahlüberlauf verursacht hat.
E0425E0425 — Wert in diesem Gültigkeitsbereich nicht gefunden
Ein Bezeichner wird verwendet, ist aber im aktuellen Gültigkeitsbereich nicht definiert.