Summary Style Whitespace Comments Braces, semicolons, commas Naming Ownership variants Containers/wrappers Conversions Iterators Imports Organization Guidelines by Rust feature Let binding Pattern matching Loops Functions and methods Input Output For convenience Types Conversions The newtype pattern Traits For generics For objects For overloading For extensions For reuse Common traits Modules Crates Ownership and resources Constructors Builders Destructors RAII Cells and smart pointers Errors Signaling Handling Propagation Ergonomics Safety and guarantees Using unsafe Library guarantees Testing Unit testing FFI, platform-specific code APIs for a changing Rust Pre-1.0 changes Post-1.0 changes Timing unclear