Rust error codes, explained
The compiler is not being difficult. Each of these messages is protecting you from a bug that would be a runtime crash in most other languages.
E0382 — use of moved value
You used a value after giving its ownership away. Here is what the compiler means and how to fix it.
E0502 — cannot borrow as mutable because it is also borrowed as immutable
A read-only reference is still alive while you try to modify the value. Here is why and how to restructure it.
E0499 — cannot borrow as mutable more than once at a time
Two exclusive references to the same value overlap. Only one may exist at a time.
E0106 — missing lifetime specifier
You returned a reference and the compiler cannot tell what it points into. Here is how to say it.
E0308 — mismatched types
The value you supplied is not the type the compiler expected — and Rust never guesses.
E0425 — cannot find value in this scope
The name you used is not visible here — a typo, a missing `let`, or a missing `use`.