Track
Rust
Review ownership, borrowing, lifetimes, Result and Option boundaries, traits, async safety, Cargo features, and tests.
- 01
Ownership and borrowing
Use borrowed inputs when a function only reads data, so callers keep ownership of their values.
ownershipborrowingboundaries - 02
Lifetimes for returned data
Return borrowed data only when the lifetime is tied to an input, instead of returning references to local values.
lifetimesborrowingreturns - 03
Result error boundaries
Return Result from fallible boundaries so callers can choose retry, rejection, or user-facing error copy.
resulterrorsboundaries - 04
Option instead of unwrap
Keep missing data in Option until the boundary decides the fallback or rejection path.
optionunwrapmissing-data - 05
Pattern matching exhaustiveness
Match enum states directly so new variants force a review of every state-dependent branch.
matchenumsstates - 06
Traits and generic contracts
Use trait bounds to name the behavior a generic function needs instead of tying code to one concrete type.
traitsgenericscontracts - 07
Iterator ownership
Choose iter, iter_mut, or into_iter based on whether the code reads, mutates, or consumes collection items.
iteratorsownershipcollections - 08
Async Send and Sync boundaries
Use thread-safe shared state around async tasks instead of holding non-Send values across await points.
asyncsendsync - 09
Cargo feature dependencies
Keep optional dependencies behind named features so builds include only the integrations they need.
cargofeaturesdependencies - 10
Tests, fixtures, and assertions
Build small fixtures and assert domain outcomes instead of only checking that code does not panic.
testsfixturesassertions
Related tracks
Keep learning inside the same language family.
C
10Review pointers, buffer bounds, allocation ownership, const contracts, structs, error codes, file cleanup, integer limits, compiler flags, and tests.
C++
10Review RAII, smart pointers, move semantics, const references, rule of zero, exception boundaries, templates, algorithms, locks, and tests.
C#
10Review nullable references, records, async cancellation, dependency injection, disposal, exceptions, LINQ, pattern matching, options, and tests.