Introduction
  • Course Introduction
  • Installing and Configuring Rust
  • Hello, Rust!
  • Introducing the Cargo Package Manager
  • Rust in IntelliJ IDEA
Types and Variables
  • 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
Control Flow
  • If Statement
  • While and Loop
  • For Loops
  • Match Statement
  • Combination Lock
Data Structures
  • Structs
  • Enumerations
  • Unions
  • Option and if let/while let
  • Arrays
  • Slices
  • Tuples
  • Pattern Matching
  • Generics
Standard Collections
  • Overview
  • Vec(tor)
  • HashMap
  • HashSet
  • Iterators
Characters and Strings
  • Strings
  • String Formatting (format!)
  • Number Guessing Game
Functions
  • Functions and Function Arguments
  • Methods
  • Closures
  • Higher-Order Functions
Traits
  • Traits
  • Trait Parameters
  • Into
  • Drop
  • Operator Overloading
  • Static Dispatch
  • Dynamic Dispatch
  • Why Dynamic Dispatch?
  • Vectors of Different Objects
Lifetime and Memory
  • Ownership
  • Borrowing
  • Lifetime
  • Lifetime in Structure Implementation
  • Reference-Counted Variables (Rc)
  • Atomic Reference-Counted Variables (Arc)
  • Using a Mutex for Thread-Safe Mutability
Advanced Topics
  • Circular References
Concurrency
  • Spawning and Joining Threads
Odds & Ends
  • Consuming Crates
  • Building Modules and Crates
  • Testing
  • Comments and Documentation