E0499E0499 — Nelze mutabilně vypůjčit více než jednou
Hodnota je mutabilně vypůjčena více než jednou ve stejnou dobu.
Co způsobuje tuto chybu
Borrow checker Rustu zabraňuje současné existenci dvou mutabilních referencí na stejná data. Tím se předchází datovým závodům a zajišťuje bezpečnost paměti.
Jak to opravit
Refaktorujte kód tak, aby v jednu chvíli existovala pouze jedna mutabilní výpůjčka. Omezte rozsah první mutabilní výpůjčky blokem. Pro vzory interní mutability zvažte použití Cell, RefCell nebo Mutex.
Příklad
let mut s = String::new();
let r1 = &mut s;
let r2 = &mut s;Související chybové kódy
E0382E0382 — Použití přesunuté hodnoty
Hodnota je použita poté, co byla přesunuta do jiné proměnné nebo funkce.
E0152E0152 — Duplicitní lang položka
Jazyková položka (#[lang = ...]) je definována více než jednou.
E0621E0621 — Vyžadována explicitní doživotnost
Parametr funkce potřebuje explicitní anotaci doživotnosti pro splnění podmínek borrow checkeru.
E0277E0277 — Typ neimplementuje Sized
Dynamicky veliký typ (DST) je použit tam, kde je vyžadován typ `Sized`.
panic-divide-by-zeroPanic — Dělení nulou
Program selhal panickou chybou kvůli celočíselnému dělení nulou.
panic-index-out-of-boundsPanic — Index mimo meze
Program zpanikoval, protože index byl mimo platný rozsah kolekce.