https://effective-rust.com/cover.html
[ ]
1. 1. Cover
2. 2. Introduction
3. 3. Types
4.
1. 3.1. Item 1: Use the type system to express your data
structures
2. 3.2. Item 2: Use the type system to express common behaviour
3. 3.3. Item 3: Avoid matching Option and Result
4. 3.4. Item 4: Prefer idiomatic Error variants
5. 3.5. Item 5: Familiarize yourself with standard traits
6. 3.6. Item 6: Understand type conversions
7. 3.7. Item 7: Embrace the newtype pattern
8. 3.8. Item 8: Use builders for complex types
9. 3.9. Item 9: Familiarize yourself with reference and pointer
types
10. 3.10. Item 10: Consider using iterator transforms instead of
explicit loops
11. 3.11. Item 11: Implement the Drop trait for RAII patterns
12. 3.12. Item 12: Prefer generics to trait objects
13. 3.13. Item 13: Use default implementations to minimize
required trait methods
5. 4. Concepts
6.
1. 4.1. Item 14: Understand lifetimes
2. 4.2. Item 15: Understand the borrow checker
3. 4.3. Item 16: Avoid writing unsafe code
4. 4.4. Item 17: Be wary of shared-state parallelism
5. 4.5. Item 18: Don't panic
6. 4.6. Item 19: Avoid reflection
7. 4.7. Item 20: Avoid the temptation to over-optimize
7. 5. Dependencies
8.
1. 5.1. Item 21: Understand what semantic versioning promises
2. 5.2. Item 22: Minimize visibility
3. 5.3. Item 23: Avoid wildcard imports
4. 5.4. Item 24: Re-export dependencies whose types appear in
your API
5. 5.5. Item 25: Manage your dependency graph
6. 5.6. Item 26: Be wary of feature creep
9. 6. Tooling
10.
1. 6.1. Item 27: Document public interfaces
2. 6.2. Item 28: Use macros judiciously
3. 6.3. Item 29: Listen to Clippy
4. 6.4. Item 30: Write more than unit tests
5. 6.5. Item 31: Take advantage of the tooling ecosystem
6. 6.6. Item 32: Set up a continuous integration (CI) system
11. 7. Beyond Standard Rust
12.
1. 7.1. Item 33: Consider making library code no_std compatible
2. 7.2. Item 34: Control what crosses FFI boundaries
3. 7.3. Item 35: Prefer bindgen to manual FFI mappings
13. 8. Index
* Light
* Rust
* Coal
* Navy
* Ayu
Effective Rust
[ ]
Effective Rust
35 Specific Ways to Improve Your Rust Code
David Drysdale