Summary
Introduction
Meet Safe and Unsafe
How Safe and Unsafe Interact
What Unsafe Can Do
Working with Unsafe
Data Layout
repr(Rust)
Exotically Sized Types
Other reprs
Ownership
References
Aliasing
Lifetimes
Limits of Lifetimes
Lifetime Elision
Unbounded Lifetimes
Higher-Rank Trait Bounds
Subtyping and Variance
Drop Check
PhantomData
Splitting Borrows
Type Conversions
Coercions
The Dot Operator
Casts
Transmutes
Uninitialized Memory
Checked
Drop Flags
Unchecked
Ownership Based Resource Management
Constructors
Destructors
Leaking
Unwinding
Exception Safety
Poisoning
Concurrency
Races
Send and Sync
Atomics
Implementing Vec
Layout
Allocating
Push and Pop
Deallocating
Deref
Insert and Remove
IntoIter
RawVec
Drain
Handling Zero-Sized Types
Final Code
Implementing Arc and Mutex
Arc
Layout
Base Code
Cloning
Dropping
Final Code
FFI
Beneath
std
#[panic_handler]