|
Accept string-like values with AsRef
|
Medium
|
Primitives
|
|
|
A macro-generated FFI binding layer
|
Hard
|
End-to-End
|
|
|
any, all, find, position: audit a list of records
|
Easy
|
Primitives
|
|
|
Arc: shared ownership across threads
|
Easy
|
Primitives
|
|
|
ASCII search without lowercase copies
|
Easy
|
Primitives
|
|
|
Balanced ranges: the arithmetic before the threads
|
Easy
|
Primitives
|
|
|
bool and char
|
Easy
|
Primitives
|
|
|
Build a configuration from defaults and overrides
|
Easy
|
Primitives
|
|
|
Build a generic stack with conditional methods
|
Medium
|
Primitives
|
|
|
Build a report with a reusable string buffer
|
Medium
|
End-to-End
|
|
Cancel safety, blocking, and locks across .await
|
Hard
|
End-to-End
|
|
|
Capstone: compose parser errors and their causes
|
Hard
|
End-to-End
|
|
|
Choose parameter types and shrink an enum
|
Medium
|
Primitives
|
|
|
Convert temperatures with From and Into
|
Medium
|
Primitives
|
|
Countdown futures and the shape of Pending
|
Easy
|
Primitives
|
|
|
Count enum variants with matches!
|
Easy
|
Primitives
|
|
|
Cow: borrow until you have to own
|
Medium
|
Primitives
|
|
|
C strings and ownership across FFI
|
Medium
|
Framework
|
|
|
Derive consistent ordering for versions and priorities
|
Medium
|
Primitives
|
|
|
Designing safe wrappers around unsafe FFI
|
Hard
|
End-to-End
|
|
|
Documenting failure: # Errors and # Panics
|
Medium
|
Framework
|
|
|
Eager vs lazy defaults
|
Easy
|
Primitives
|
|
|
Expose a string view with Deref
|
Medium
|
Primitives
|
|
|
Filter borrowed values into owned results
|
Medium
|
Primitives
|
|
|
fold and try_fold: a total that refuses to overflow
|
Medium
|
Primitives
|
|
|
Format money with Display
|
Easy
|
Primitives
|
|
|
Generics, traits and lifetimes in one signature
|
Medium
|
Primitives
|
|
|
Group and count words with BTreeMap entries
|
Medium
|
Primitives
|
|
|
Implement Iterator by hand: the Collatz sequence
|
Medium
|
Primitives
|
|
|
Keep a guard alive with a named binding
|
Medium
|
Primitives
|
|
|
loop, while, for, and break with a value
|
Easy
|
Primitives
|
|
|
Make hashing agree with equality
|
Medium
|
Primitives
|
|
Make the lint happy: '_ in return paths
|
Easy
|
Primitives
|
|
|
map, filter, filter_map: parse host:port lines
|
Easy
|
Primitives
|
|
|
Method receivers and the consuming builder
|
Medium
|
Primitives
|
|
|
#[must_use] in depth
|
Medium
|
Framework
|
|
Pointer arithmetic: offset, add, sub, wrapping_*
|
Medium
|
Primitives
|
|
poll_fn: a future from a closure
|
Easy
|
Primitives
|
|
Propagating with ?
|
Easy
|
Primitives
|
|
ptr::read, write, copy, copy_nonoverlapping, drop_in_place
|
Medium
|
Primitives
|
|
|
Ranges: .., ..=, and range patterns
|
Easy
|
Primitives
|
|
Rc<RefCell<T>>: shared inboxes and an arena alternative
|
Hard
|
End-to-End
|
|
Rc<str>: sharing interned strings
|
Medium
|
Primitives
|
|
|
Reduce an enum’s inline size with Box
|
Medium
|
Primitives
|
|
|
Remove duplicates while preserving order
|
Easy
|
Primitives
|
|
|
Replace a manual default with a derive
|
Easy
|
Primitives
|
|
|
Result, and why it is #[must_use]
|
Easy
|
Primitives
|
|
|
Result combinators and map_err
|
Easy
|
Primitives
|
|
|
Return a grade with an if expression
|
Easy
|
Primitives
|
|
Safety comments as a discipline: // SAFETY: and # Safety
|
Easy
|
Primitives
|
|