What problem does it solve? Rust's borrow checker rejects code with errors like E0382, E0502, E0597, and E0106, and developers often struggle to choose between Move, Clone, Rc, Arc, Cow, and interior mutability patterns when designing data structures. ## Core Features & Use Cases - Compiler Error Repair: Maps common ownership errors (E0382 moved value, E0502 conflicting borrows, E0597 lifetime too short, E0106 missing lifetime specifier) to concrete fix strategies. - Ownership Strategy Selection: Decision tables for choosing between Copy, Clone, Move, &T, &mut T, Rc, Arc, Cow, Cell, RefCell, Mutex, and RwLock based on threading and sharing requirements. - Lifetime Annotation Guidance: Explains the three elision rules and when explicit <'a> annotations are required in functions, structs, and iterators. - Use Case: When the compiler rejects your code with "cannot borrow as mutable because it is also borrowed as immutable", consult this Skill to restructure borrows, narrow scopes, or apply RefCell for runtime-checked interior mutability. ## Quick Start Ask the AI to fix the borrow checker error in your Rust function and explain whether to use a reference, clone, or Rc for the shared value.