Welcome to Comprehensive Rust 🦀
1.
Using Cargo
❱
1.1.
Rust Ecosystem
1.2.
Code Samples
1.3.
Running Cargo Locally
Day 1: Morning
2.
Welcome
3.
Introduction
❱
3.1.
What is Rust?
3.2.
Benefits of Rust
3.3.
Playground
4.
Types and Values
❱
4.1.
Hello, World
4.2.
Variables
4.3.
Values
4.4.
Arithmetic
4.5.
Strings
4.6.
Type Inference
5.
Control Flow Basics
❱
5.1.
if Expressions
5.2.
Loops
❱
5.2.1.
for
5.2.2.
loop
5.3.
break and continue
❱
5.3.1.
Labels
5.4.
Blocks and Scopes
❱
5.4.1.
Scopes and Shadowing
5.5.
Functions
5.6.
Macros
6.
Exercises
Day 1: Afternoon
7.
Welcome
8.
Tuples and Arrays
❱
8.1.
Arrays
8.2.
Tuples
8.3.
Array Iteration
8.4.
Patterns and Destructuring
9.
References
❱
9.1.
Shared References
9.2.
Exclusive References
9.3.
Static and Const
10.
User-Defined Types
❱
10.1.
Named Structs
10.2.
Tuple Structs
10.3.
Enums
10.4.
Type Aliases
11.
Exercises
Day 2: Morning
12.
Welcome
13.
Pattern Matching
❱
13.1.
Matching Values
13.2.
Destructuring
13.3.
Let Control Flow
14.
Methods and Traits
❱
14.1.
Methods
14.2.
Traits
❱
14.2.1.
Implmementing Traits
14.2.2.
Associated Types
14.3.
Deriving
15.
Generics
❱
15.1.
Generic Functions
15.2.
Generic Data Types
15.3.
Trait Bounds
15.4.
impl Trait
16.
Exercises
Day 2: Afternoon
17.
Welcome
18.
Memory Management
❱
18.1.
Review of Program Memory
18.2.
Approaches to Memory Management
18.3.
Ownership
18.4.
Move Semantics
18.5.
Clone
18.6.
Copy Types
18.7.
Drop
19.
Exercises
Day 3: Morning
20.
Welcome
21.
Smart Pointers
❱
21.1.
Box<T>
21.2.
Rc
21.3.
Trait Objects
22.
Borrowing
❱
22.1.
Borrowing a Value
22.2.
Borrow Checking
23.
Slices and Lifetimes
❱
23.1.
Slices: &[T]
23.2.
String References
23.3.
Lifetime Annotations
23.4.
Lifetime Elision
23.5.
Struct Lifetimes
24.
Exercises
Day 3: Afternoon
25.
Welcome
26.
Standard Library Types
❱
26.1.
Standard Library
26.2.
Documentation
26.3.
Option
26.4.
Result
26.5.
Vec
26.6.
String
26.7.
HashMap
27.
Standard Library Traits
❱
27.1.
Comparisons
27.2.
Operators
27.3.
From and Into
27.4.
Casting
27.5.
Read and Write
27.6.
Default, struct update syntax
27.7.
Closures
28.
Exercises
Day 4: Morning
29.
Welcome
30.
Iterators
❱
30.1.
Iterator
30.2.
IntoIterator
30.3.
FromIterator
31.
Modules
❱
31.1.
Modules
31.2.
Filesystem Hierarchy
31.3.
Visibility
31.4.
use, super, self
32.
Exercises
Day 4: Afternoon
33.
Welcome
34.
Testing
❱
34.1.
Test Modules
34.2.
Other Types of Tests
34.3.
Compiler Lints and Clippy
35.
Error Handling
❱
35.1.
Panics
35.2.
Try Operator
35.3.
Try Conversions
35.4.
Error Trait
35.5.
thiserror and anyhow
36.
Exercises
Day 5: Morning
37.
Welcome
38.
Threads
❱
38.1.
Scoped Threads
39.
Channels
❱
39.1.
Unbounded Channels
39.2.
Bounded Channels
40.
Send and Sync
❱
40.1.
Send
40.2.
Sync
40.3.
Examples
41.
Shared State
❱
41.1.
Arc
41.2.
Mutex
41.3.
Example
42.
Exercises
Day 5: Afternoon
43.
Async Basics
❱
43.1.
async/await
43.2.
Futures
43.3.
Runtimes
❱
43.3.1.
Tokio
43.4.
Tasks
43.5.
Async Channels
44.
Control Flow
❱
44.1.
Join
44.2.
Select
45.
Pitfalls
❱
45.1.
Blocking the Executor
Final Words
46.
Thanks!
47.
Glossary
48.
Other Resources
49.
Credits
Light
Rust
Coal
Navy
Ayu
Comprehensive Rust 🦀
Iterators
In this segment:
Iterator
(5 minutes)
IntoIterator
(5 minutes)
FromIterator
(5 minutes)
This segment should take about 15 minutes