|
ASCII search without lowercase copies
|
Easy
|
Primitives
|
|
|
Bounds checks: five safe ways to express access
|
Hard
|
End-to-End
|
|
|
Build a byte index with one allocation
|
Easy
|
Primitives
|
|
|
Build a CSV record with one output buffer
|
Easy
|
Primitives
|
|
|
Build a report with a reusable string buffer
|
Medium
|
End-to-End
|
|
|
Chains versus loops: top-k, and a function that must not allocate
|
Medium
|
End-to-End
|
|
|
Compute a dot product with eight accumulator lanes
|
Hard
|
End-to-End
|
|
|
const fn and compile-time evaluation
|
Hard
|
End-to-End
|
|
|
Const generics: moving a size from runtime to compile time
|
Hard
|
End-to-End
|
|
|
Delegate shape methods through an enum
|
Medium
|
End-to-End
|
|
|
Filter records without cloning their tags
|
Medium
|
End-to-End
|
|
|
Implement a custom hasher for integer keys
|
Hard
|
End-to-End
|
|
|
Place inline and cold attributes on helper functions
|
Hard
|
End-to-End
|
|
|
Reduce an enum’s inline size with Box
|
Medium
|
Primitives
|
|
|
Remove and return matching events with extract_if
|
Easy
|
Primitives
|
|
|
Reserve output space and report iterator size hints
|
Medium
|
End-to-End
|
|
|
Reusing buffers instead of allocating per iteration
|
Medium
|
Primitives
|
|
|
Shrink an enum and inspect its layout
|
Medium
|
Primitives
|
|
|
size_hint and DoubleEndedIterator: an iterator with two ends
|
Hard
|
Primitives
|
|
|
Sorting: sort vs sort_unstable vs sort_by_cached_key
|
Medium
|
End-to-End
|
|
|
Static vs dynamic dispatch
|
Hard
|
End-to-End
|
|
|
Store and transpose a grid in one flat buffer
|
Medium
|
End-to-End
|
|
|
Where the allocations are: the counting allocator
|
Easy
|
Primitives
|
|