borrow-checker FAQs
a day ago
- To modify elements in a collection while also modifying the collection, use 'while let' instead of 'for' loop to avoid double mutable borrow.
- When using a closure that captures a struct with disjoint fields, explicitly capture the needed fields with 'let' statements to avoid moving the whole struct.
- Moving code into a separate function may cause compilation failures due to the compiler not recognizing disjoint fields or incorrect lifetimes; workaround by inlining or restructuring the struct.
- To use an iterator from a struct while needing mutable access to the struct, collect the iterator into a new collection first (e.g., Vec) to satisfy the borrow checker.