- Course Introduction
- Installing and Configuring Rust
- Hello, Rust!
- Introducing the Cargo Package Manager
- Rust in IntelliJ IDEA
- Numbers on the Computer
- Application Entrypoint
- Core Data Types
- Operators
- Scope and Shadowing
- Declaring and Using Constants
- Stack and Heap
- Debugging Rust Applications with CLion
- If Statement
- While and Loop
- For Loops
- Match Statement
- Combination Lock
- Structs
- Enumerations
- Unions
- Option
and if let/while let - Arrays
- Slices
- Tuples
- Pattern Matching
- Generics
- Overview
- Vec(tor)
- HashMap
- HashSet
- Iterators
- Strings
- String Formatting (format!)
- Number Guessing Game
- Functions and Function Arguments
- Methods
- Closures
- Higher-Order Functions
- Traits
- Trait Parameters
- Into
- Drop
- Operator Overloading
- Static Dispatch
- Dynamic Dispatch
- Why Dynamic Dispatch?
- Vectors of Different Objects
- Ownership
- Borrowing
- Lifetime
- Lifetime in Structure Implementation
- Reference-Counted Variables (Rc)
- Atomic Reference-Counted Variables (Arc)
- Using a Mutex for Thread-Safe Mutability
- Circular References
- Spawning and Joining Threads
- Consuming Crates
- Building Modules and Crates
- Testing
- Comments and Documentation