Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Rust Programming: The Complete Developer's Guide
Intoduction
Rust Programming: The Complete Developer's Guide (2:46)
Exercise: Meet Your Classmates and Instructor
Course Projects + Code + Slides + Cheatsheet
ZTM Plugin + Understanding Your Video Player
Set Your Learning Streak Goal
Rust Fundamentals
Intro (2:26)
Data Types (5:01)
Variables (6:35)
Functions (8:12)
println! (3:04)
Control Flow with If (8:38)
Repetition (6:30)
Setup Rust (4:49)
Comments (3:36)
Activity: Functions (7:08)
Numeric Types & Basic Arithmetic (3:36)
Activity: Basic Math (5:27)
Let's Have Some Fun (+ Free Resources)
Making Decisions with Rust
Control Flow: If & Else (2:33)
Activity: Logic with If & Else (3:59)
Activity: Logic with If & Else (4:59)
Match Expression (4:25)
Demo: Basic Match (3:11)
Activity: Basic Match 1 (4:03)
Activity: Basic Match 2 (5:11)
Unlimited Updates
Repetition
The Loop Expression (4:48)
Activity: Loops (4:58)
The While Loop (3:22)
Activity: While Loops (4:45)
Working With Data
Enums (3:11)
Demo: Enums (3:43)
Activity: Enums (6:09)
Structs (2:47)
Demo: Structs (2:51)
Activity: Structs (9:27)
Tuples (3:31)
Demo: Tuples (5:49)
Activity: Tuples (5:55)
Expressions (3:49)
Demo: Expressions (5:09)
Activity: Expressions (7:11)
Course Check-In
Rust's Memory Model
Intermediate Memory Concepts (3:34)
Ownership (6:17)
Demo: Ownership (6:06)
Activity: Ownership (4:57)
Data Collections
Implementing Functionality (9:20)
Activity: Implementing Functionality (16:30)
The Vector Data Structure (4:53)
Vector Basics & For Loops (2:28)
Activity: Vectors & For Loops (6:47)
About Strings (4:00)
Demo: Strings (4:28)
Activity: Strings (7:23)
Implement a New Life System
Expanding Knowledge
Deriving Functionality (6:08)
Type Annotations (4:07)
Enums Revisited (3:59)
Demo: Advanced Match (7:57)
Activity: Advanced match (10:42)
The Option Type (6:26)
Demo: Option (4:26)
Activity: Option (5:01)
Generating Documentation (2:24)
Standard Library API docs (3:33)
Activity: Standard Library API docs (3:46)
Fallible Functions
The Result Type (4:40)
Demo: Result (14:16)
Activity: Result (6:40)
Activity: Result & The Question Mark Operator (7:51)
Data Collection: HashMap
The HashMap Data Structure (4:20)
Working With HashMaps (5:32)
Activity: HashMap Basics (8:26)
Easier Data Management
Basic Closures (4:41)
Map Combinator (5:01)
Activity: Map Combinator (8:07)
Option Combinator Pattern (7:49)
Activity: Option Combinators (4:23)
Using Iterators (9:12)
Activity: Using Iterators (5:14)
Ranges (1:58)
If..let..else (2:58)
while..let (2:06)
Managing Code
Inline Modules (4:02)
Activity: Inline Modules (10:17)
Testing (6:52)
Activity: Testing (7:42)
External Crates (6:28)
Activity: Adding an External Crate (4:44)
External Modules (10:27)
Activity: External Modules (9:54)
Milestone Project: Billing Application
Gathering User Input (14:21)
Activity: Gathering User Input (22:47)
Mini Project: Introduction (2:44)
Retrieve User Input (3:16)
Creating The Main Menu Loop (7:14)
Required Data Structures (4:10)
Implementation: Adding & Viewing Bills (13:00)
Implementation: Removing Bills (6:50)
Implementation: Editing Bills (9:15)
Shared Functionality
Traits (4:54)
Demo: Traits (4:58)
Activity: Traits (5:58)
Implementing The "Default" Trait (2:28)
Generics & Functions (13:54)
Demo: Generics & Functions (6:22)
Activity: Generics & Functions (5:52)
Generic Structures (10:06)
Generic Structures & impl Blocks (7:58)
Demo: Generics & Structures (6:38)
Activity: Generics & Structures (10:18)
Advanced Memory Concepts (8:50)
Trait Objects (11:35)
Demo: Trait Objects (7:26)
Activity: Trait Objects (8:35)
Lifetimes
Ownership & Lifetimes (9:03)
Demo: Lifetimes (8:32)
Activity: Lifetimes & Structures (10:49)
Activity: Lifetimes & Functions (4:47)
Improving Program Reliability
Custom Error Types (8:51)
Demo: Custom Error Types (8:53)
Activity: Creating a Custom Error (9:01)
const (2:20)
New Type Pattern (5:07)
Activity: Utilizing The New Type Pattern (8:08)
TypeState Pattern (4:13)
Demo: TypeState Pattern (11:48)
Activity: TypeState Pattern (7:41)
Demo: Match Guards & Binding (6:22)
Activity: Match Guards & Binding (8:45)
Arrays & Slices (7:48)
Slice Patterns (5:53)
Activity: Slices (5:41)
Type Aliases (5:22)
Exercise: Imposter Syndrome (2:55)
Type Conversions
From/Into (8:17)
TryFrom/TryInto (3:56)
Demo: From/Into (7:58)
Activity: TryFrom/TryInto (10:15)
Numeric Limits & Numeric Type Casting (7:59)
Parallel Execution
Passing Closures to Functions (10:53)
Threads (6:44)
Demo: Threads (7:39)
Activity: Threads (4:29)
Channels (8:13)
Demo: Channels (5:04)
Demo: Bidirectional Threaded Communication (7:28)
Activity: Channels (9:23)
Shared Ownership
Smart Pointers (4:07)
Interior Mutability: Cell & RefCell (8:06)
Demo: Smart Pointers & RefCell (6:00)
Activity: Smart Pointers & RefCell (9:14)
Arc/Mutex (8:38)
Threading: Deadlocks (6:27)
Demo: Arc/Mutex (4:15)
Activity: Arc/Mutex (5:13)
Standard Library Tour
Enum Equality & Ordering (3:42)
Struct Equality & Ordering (4:23)
Operator Overloading (7:24)
Iterators: Implementing Iterator for a Struct (3:31)
Implement IntoIterator (7:58)
Demo: Implementing IntoIterator (9:23)
Activity: Implementing Iterator (5:45)
Iterators: Custom Iteration Logic (8:07)
Helpful Macros (7:48)
Managing Integer Overflow (5:39)
Other Language Features
Turbofish (2:29)
Loop Labels (2:44)
Loop Expressions (2:34)
Struct Update Syntax (2:47)
Escape Sequences & Raw Strings (4:17)
Development Experience
rust-analyzer (4:18)
clippy (2:31)
error-lens (1:27)
Crate Roundup
dotenvy (2:32)
serde (3:56)
rand (4:20)
cached (4:16)
regex (5:17)
chrono (7:31)
strum (4:24)
derive_more (6:32)
rayon (4:00)
tracing (6:29)
color-eyre (4:15)
Resources
Helpful Links for Your Rust Career
Final Project: Clip Stash
Async Primer (7:51)
Introduction To The Project (1:03)
Architecture (3:38)
Walkthrough & Domain Structure Modules (7:25)
Domain Errors (6:02)
Domain Implementation: Content & Hits (6:36)
Domain Implementation: Password (6:27)
Domain Implementation: Shortcode (7:32)
Domain Implementation: Title (2:40)
Domain Implementation: Time (6:48)
Domain Implementation: Expire & Posted (5:03)
Domain Implementation: Dbld & Clipld (6:00)
Recap & Error Correction (5:18)
Database Type Aliases (7:25)
Database Wrapper (4:12)
Database Model (11:56)
SQL Primer (4:25)
sqlx cli (1:42)
Database Query: Get Clip (6:55)
Database Query: New Clip (7:06)
Database Query: Update Clip (3:51)
Recap & Next Steps (4:18)
Service Layer: Errors (7:34)
Service Layer: Get Clip (11:22)
Service Layer: Add & Update Clip (7:21)
Templates (2:00)
Page Contexts (6:15)
Template Renderer (14:30)
Rocket Framework (4:28)
Initial Web Setup (3:46)
Web Forms (9:19)
Homepage, Catchers, and Router (5:45)
Rocket Configuration (3:34)
Rocket Configuration: Troubleshooting
Running the Server (9:34)
Retrieving a Clip (11:05)
Saving a Clip (13:14)
Password Protected Clips (7:12)
Raw Clips (5:31)
Hit Counter (1:39)
Hit Counter - Service & Data (11:38)
Hit Counter Implementation part 1 (12:27)
Hit Counter Implementation part 2 (5:58)
Database Migration (1:11)
API: Keys & Error Handling (9:19)
API: Service & Queries (7:10)
API: Request Guard (6:43)
API: Routing (12:06)
API Client: Cargo.toml & CLI Options (8:38)
API Client: Get Clip & New Clip (7:42)
API Client: Update Clip & Making Requests (6:07)
Maintenance Tasks (7:06)
Testing: Database (9:14)
Testing: HTTP Routes (10:00)
Declarative Macros
Overview (6:54)
Detail (15:39)
Demo: impl Blocks (6:38)
Activity: Control Flow (2:51)
Activity: impl Blocks (2:34)
Repetitions (8:46)
Demo: Repetitions (3:14)
Activity: HashMap (5:22)
Demo: Syntax Extension (8:52)
Activity: Syntax Extension (4:11)
Activity: Generating Tests (6:31)
Activity: Function Tracer (4:47)
Demo: Checked Config (13:18)
Demo: Recursive tt Muncher (6:40)
Where To Go From Here?
Thank You! (1:17)
Review This Course!
Become An Alumni
Learning Guideline
ZTM Events Every Month
LinkedIn Endorsements
Activity: Smart Pointers & RefCell
This lecture is available exclusively for ZTM Academy members.
If you're already a member,
you'll need to login
.
Join ZTM To Unlock All Lectures