- 2. A Bad Stack
- 2.1 Layout
- 2.2 New
- 2.3 Ownership 101
- 2.4 Push
- 2.5 Pop
- 2.6 Testing
- 2.7 Drop
- 2.8 Final Code
- 3. An Ok Stack
- 3.1 Option
- 3.2 Generic
- 3.3 Peek
- 3.4 IntoIter
- 3.5 Iter
- 3.6 IterMut
- 3.7 Final Code
- 4. A Persistent Stack
- 4.1 Layout
- 4.2 Basics
- 4.3 Drop
- 4.4 Arc
- 4.5 Final Code
- 5. A Bad Safe Deque
- 5.1 Layout
- 5.2 Building Up
- 5.3 Breaking
- 5.4 Peeking
- 5.5 Symmetric Junk
- 5.6 Iteration
- 5.7 Final Code
- 6. An Ok Unsafe Deque
- 6.1 Layout
- 6.2 Unsafe
- 6.3 Basics
- 6.4 Miri
- 6.5 Stacked Borrows
- 6.6 Testing Stacked Borrows
- 6.7 Layout + Basics Redux
- 6.8 Extras
- 6.9 Final Code
- 7. A Production Unsafe Deque
- 7.1 Layout
- 7.2 Variance and Subtyping
- 7.3 Basics
- 7.4 Panic Safety
- 7.5 Boring Combinatorics
- 7.6 Filling in Random Bits
- 7.7 Testing
- 7.8 Send, Sync, and Compile Tests
- 7.9 An Introduction to Cursors
- 7.10 Implementing Cursors
- 7.11 Testing Cursors
- 7.12
- 8. A Bunch of Silly Lists
- 8.1
- 8.2
A link to the source