|
any, all, find, position: audit a list of records
|
Easy
|
Primitives
|
|
|
Bounds checks: five safe ways to express access
|
Hard
|
End-to-End
|
|
|
Carry a running maximum through mutable iteration
|
Medium
|
Primitives
|
|
|
Chains versus loops: top-k, and a function that must not allocate
|
Medium
|
End-to-End
|
|
|
Choose the first minimum and last maximum
|
Medium
|
Primitives
|
|
|
Closures 101: build a pipeline of boxed closures
|
Easy
|
Primitives
|
|
|
collect and the turbofish: three targets, one source
|
Medium
|
Primitives
|
|
|
Collecting an iterator of Results
|
Medium
|
Primitives
|
|
|
Collect sorted keys and build a last-value index
|
Easy
|
Primitives
|
|
|
Filter borrowed values into owned results
|
Medium
|
Primitives
|
|
|
flat_map: expand a range spec like "1-3,7,10-12"
|
Medium
|
End-to-End
|
|
|
fold and try_fold: a total that refuses to overflow
|
Medium
|
Primitives
|
|
|
from_fn and successors: iterators without writing a struct
|
Easy
|
Primitives
|
|
|
Implement Iterator by hand: the Collatz sequence
|
Medium
|
Primitives
|
|
|
iter, iter_mut, into_iter: all three, one Vec
|
Easy
|
Primitives
|
|
|
Joining owned strings
|
Easy
|
Primitives
|
|
longest: writing your first 'a
|
Medium
|
Primitives
|
|
|
loop, while, for, and break with a value
|
Easy
|
Primitives
|
|
Make the lint happy: '_ in return paths
|
Easy
|
Primitives
|
|
|
Make your own collection iterable, all three ways
|
Hard
|
Framework
|
|
|
map, filter, filter_map: parse host:port lines
|
Easy
|
Primitives
|
|
|
Ownership inside loops
|
Medium
|
Primitives
|
|
|
partition and unzip: split rows and group names
|
Medium
|
Primitives
|
|
|
peekable and next_if: write a tokeniser
|
Hard
|
End-to-End
|
|
PhantomData, variance and drop-check
|
Hard
|
Framework
|
|
|
Read a log after its closure finishes
|
Medium
|
Primitives
|
|
|
Remove matching values without invalidating iteration
|
Medium
|
Primitives
|
|
|
Reserve output space and report iterator size hints
|
Medium
|
End-to-End
|
|
|
scan: a running balance that stops at the floor
|
Medium
|
Primitives
|
|
|
Set algebra with BTreeSet
|
Easy
|
Primitives
|
|
|
size_hint and DoubleEndedIterator: an iterator with two ends
|
Hard
|
Primitives
|
|
|
Split a message at its first blank line
|
Easy
|
Primitives
|
|
|
Subtract the minimum with a mutable iterator
|
Medium
|
Primitives
|
|
|
Sum collections and iterators with IntoIterator
|
Medium
|
Primitives
|
|
|
The Option combinator vocabulary
|
Easy
|
Primitives
|
|
|
Trace a lazy map, filter and take pipeline
|
Easy
|
Primitives
|
|
|
Vec surgery: retain, dedup and extract_if
|
Medium
|
Primitives
|
|
|
windows and chunks are slice methods, not iterator adapters
|
Medium
|
Primitives
|
|
|
Write your own adapters, with an extension trait
|
Hard
|
Framework
|
|
|
zip and enumerate: pair two lists and report the leftovers
|
Easy
|
Primitives
|
|