1.
Introduction
2.
Idioms
2.1.
Use borrowed types for arguments
2.2.
Concatenating Strings with format!
2.3.
Constructor
2.4.
The Default Trait
2.5.
Collections Are Smart Pointers
2.6.
Finalisation in Destructors
2.7.
mem::replace(_)
2.8.
On-Stack Dynamic Dispatch
2.9.
Iterating over an Option
2.10.
Pass Variables to Closure
2.11.
Privacy For Extensibility
2.12.
Easy doc initialization
2.13.
Temporary mutability
3.
Design Patterns
3.1.
Builder
3.2.
Compose Structs
3.3.
Fold
3.4.
Newtype
3.5.
RAII Guards
3.6.
Prefer Small Crates
3.7.
Contain unsafety in small modules
3.8.
Visitor
4.
Anti-patterns
4.1.
#[deny(warnings)]
4.2.
Deref Polymorphism
5.
Functional Programming
6.
Additional Resources
Light
Rust (default)
Coal
Navy
Ayu
Rust Design Patterns
Additional resources
A collection of complementary helpful content
Talks
Design Patterns in Rust
by Nick Cameron at the PDRust (2016)