What problem does it solve? Writing custom iterators or making a custom Rust type iterable triggers a cluster of confusing compiler errors and runtime traps: E0277 when a for loop rejects a container, E0207 on lending iterators, stack overflows from recursive into_iter bodies, and ExactSizeIterator len panics from a missing size_hint override. This Skill maps each symptom to the correct fix with tested code and lint configuration. ## Core Features & Use Cases - Symptom-to-fix routing table: Maps exact rustc 1.98.1 error codes (E0277, E0658, E0207, E0432) and warnings like unconditional_recursion to the section that resolves them. - Complete trait implementation patterns: Provides tested implementations of the three IntoIterator impls, FromIterator, Extend, DoubleEndedIterator, ExactSizeIterator, and size_hint contracts for collection newtypes. - Lending iterator and generator guidance: Shows three compiling shapes for iterators that borrow from themselves, plus stable iter::from_fn, successors, and repeat_with replacements for nightly gen blocks. - Use Case: You write for v in &bag and get error[E0277]: &Bag is not an iterator. The Skill routes you to the three IntoIterator impls section, gives you the full working code, and the clippy lint levels to prevent regressions. ## Quick Start Ask the agent to make your custom collection type iterable in Rust using the rust-iterator-impl skill, or paste the compiler error you hit while implementing Iterator.