What problem does it solve? Translating classic object-oriented design patterns into Rust is error-prone because ownership, enums, traits, and the lack of inheritance change how patterns like Builder, Singleton, Visitor, and Observer should be implemented. This Skill provides the idiomatic Rust mechanism for each pattern so you avoid fighting the borrow checker or faking inheritance. ## Core Features & Use Cases - Pattern Decision Guide: Maps every GoF pattern (Builder, Factory, Singleton, Adapter, Decorator, Composite, Strategy, Command, Observer, State, Visitor, and more) to its idiomatic Rust equivalent, with full code examples in reference files. - Rust-Specific Patterns: Covers Typestate with PhantomData, RAII/Drop guards, Newtype wrappers, and enum-based state machines that have no OOP counterpart. - Trait Objects vs Enum Dispatch: Provides a decision table comparing performance, memory, and extensibility so you choose the right dispatch mechanism. - Use Case: When refactoring a Rust service that uses clone() to satisfy the borrow checker, consult the anti-patterns section to restructure borrows and decompose structs instead. ## Quick Start Ask the agent to review your Rust module and suggest which design patterns or idioms from the Rust Design Patterns book should replace the current OOP-style structure.