# Summary - [Introduction](./intro.md) - [Idioms](./idioms/index.md) - [Use borrowed types for arguments](./idioms/coercion-arguments.md) - [Concatenating Strings with `format!`](./idioms/concat-format.md) - [Constructor](./idioms/ctor.md) - [The `Default` Trait](./idioms/default.md) - [Collections Are Smart Pointers](./idioms/deref.md) - [Finalisation in Destructors](./idioms/dtor-finally.md) - [`mem::{take(_), replace(_)}`](./idioms/mem-replace.md) - [On-Stack Dynamic Dispatch](./idioms/on-stack-dyn-dispatch.md) - [Foreign function interface (FFI)](./idioms/ffi/intro.md) - [Idiomatic Errors](./idioms/ffi/errors.md) - [Accepting Strings](./idioms/ffi/accepting-strings.md) - [Passing Strings](./idioms/ffi/passing-strings.md) - [Iterating over an `Option`](./idioms/option-iter.md) - [Pass Variables to Closure](./idioms/pass-var-to-closure.md) - [Privacy For Extensibility](./idioms/priv-extend.md) - [Easy doc initialization](./idioms/rustdoc-init.md) - [Temporary mutability](./idioms/temporary-mutability.md) - [Design Patterns](./patterns/index.md) - [Behavioural](./patterns/behavioural/intro.md) - [Command](./patterns/behavioural/command.md) - [Interpreter](./patterns/behavioural/interpreter.md) - [Newtype](./patterns/behavioural/newtype.md) - [RAII Guards](./patterns/behavioural/RAII.md) - [Strategy](./patterns/behavioural/strategy.md) - [Visitor](./patterns/behavioural/visitor.md) - [Creational](./patterns/creational/intro.md) - [Builder](./patterns/creational/builder.md) - [Fold](./patterns/creational/fold.md) - [Structural](./patterns/structural/intro.md) - [Compose Structs](./patterns/structural/compose-structs.md) - [Prefer Small Crates](./patterns/structural/small-crates.md) - [Contain unsafety in small modules](./patterns/structural/unsafe-mods.md) - [Foreign function interface (FFI)](./patterns/ffi/intro.md) - [Object-Based APIs](./patterns/ffi/export.md) - [Type Consolidation into Wrappers](./patterns/ffi/wrappers.md) - [Anti-patterns](./anti_patterns/index.md) - [Clone to satisfy the borrow checker](./anti_patterns/borrow_clone.md) - [`#[deny(warnings)]`](./anti_patterns/deny-warnings.md) - [Deref Polymorphism](./anti_patterns/deref.md) - [Functional Programming](./functional/index.md) - [Programming paradigms](./functional/paradigms.md) - [Generics as Type Classes](./functional/generics-type-classes.md) - [Additional Resources](./additional_resources/index.md) - [Design principles](./additional_resources/design-principles.md)