Beyond Basic Rust: Exploring Power Features Of Rust
Published 7/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.09 GB | Duration: 4h 53m
Published 7/2025
MP4 | Video: h264, 1920x1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 1.09 GB | Duration: 4h 53m
Diving deep into rust with error handling, coercion, lifetimes relationships, downcasting, traits limitations, dropcheck
What you'll learn
Rust Developers with Foundational Knowledge
Graduates of the “Rust Programming: Beginner to Expert” Course
Tech Professionals Preparing for Rust-Based Job Roles
Rust Enthusiast
Requirements
Basic Knowledge of Rust Programming
Description
This advanced Rust programming course is designed as a natural progression for those who have completed our foundational Rust course titled or are already comfortable with beginner and intermediate concepts. In this next phase, we dive deeper into the powerful and nuanced features of the Rust language that are essential for writing robust, scalable, and idiomatic Rust applications.We begin by strengthening error handling techniques, introducing you to advanced constructs like layered outcomes, custom error types using anyhow and thiserror, and exploring subtle nuances in error propagation and chaining. From there, we go beyond basic references to uncover the intricacies of reference types in method chaining, pattern matching, and compound structures.A major focus of the course is on type coercion, a concept often overlooked but critical for working with traits, generics, and unsized types. You will learn how coercion enables elegant abstractions and reuse in Rust’s type system.Our exploration of lifetimes continues with an in-depth look at subtyping, variance, and the relationships that govern safe borrowing in complex systems. You will also engage with combinators, common standard traits, and their real-world applications.The course then ventures into Rust’s trait system limitations, exploring object safety, associated types, and orphan rules—concepts crucial for building extensible libraries and safe abstractions. We also covert downcasting which is a powerful but lesser-known capability in Rust that allows converting trait objects back into their original concrete types. In particular, we demystify the mechanics of downcasting and show how it can be used to recover type-specific behavior after abstraction. You'll learn how to safely attempt conversions using Any, handle type mismatches gracefully, and structure your code to maintain type safety without sacrificing flexibility. In the final section of the course, we deep dive and explore topics in dropping variables. We learn how Rust performs drop checking to prevent use-after-free bugs and other memory safety issues. You’ll gain insight into how partial moves, drop order, and how temporary value destruction are handled under the hood.Whether you're building high-performance systems or contributing to advanced libraries, this course equips you with the skills to write expressive and maintainable Rust code at an expert level
Overview
Section 1: Introduction
Lecture 1 Introduction
Lecture 2 Who Should Take This Course
Lecture 3 Code Files Used in the Course
Section 2: Error Handling
Lecture 4 Rust Error Handling Approaches
Lecture 5 Propagating Errors
Lecture 6 Multiple Error Types
Lecture 7 Chaining Question Mark
Lecture 8 Layered Outcomes Wrapping Results and Options in Rust (Part 1)
Lecture 9 Layered Outcomes Wrapping Results and Options in Rust (Part 2)
Lecture 10 Anyhow
Lecture 11 Thiserror
Section 3: Beyond Basic Reference
Lecture 12 Casting of References
Lecture 13 Destructing References
Lecture 14 Forcing Variables to use References
Lecture 15 Referenceing in Compound Data Types
Lecture 16 Pattern Matching Contexts
Lecture 17 Destructured Struct Parameters
Lecture 18 References Constraints in Method Chaining
Section 4: Coercion
Lecture 19 Coercion Basics (Deref Coercion)
Lecture 20 Coercion Sites
Lecture 21 Reference Coercion
Lecture 22 Function Item Coercion
Lecture 23 Trait Objects Coercion
Lecture 24 Unsized Coercion
Lecture 25 Coercion in Generics
Lecture 26 Transitivity in Coercion
Lecture 27 Least Upper Bound Coercion
Section 5: Relationships in Lifetimes
Lecture 28 Reference Recap (Part 1)
Lecture 29 Reference Recap (Part 2)
Lecture 30 Relating Lifetimes (Explicit Bounds)
Lecture 31 Relating Lifetimes (Implied Bounds)
Lecture 32 Relating Lifetimes (Subtyping and Variance)
Lecture 33 Relating Lifetimes (Contravariance)
Lecture 34 Relating Lifetimes (Invariance (Part 1))
Lecture 35 Relating Lifetimes (Invariance (Part 2))
Section 6: Traits Limitations, Object Safety and Orphan Rule
Lecture 36 Orphan Rule
Lecture 37 Trait Objects Limitations (Multiple Traits)
Lecture 38 Trait Objects Limitations (Associated Types)
Lecture 39 Trait Objects Limitations (Methods with Generics)
Lecture 40 Function with No Self Parameter
Lecture 41 Size and Trait Objects
Lecture 42 Partial Object Safety
Lecture 43 Operator Overloading flinalized
Lecture 44 Sealed Trait
Section 7: Downcasting Trait Objects to Concrete Types
Lecture 45 Downcasting Trait Objects
Lecture 46 Downcasting Example
Lecture 47 Conversion between Trait Objects
Lecture 48 Checking Type without Downcasting
Section 8: Drop Check
Lecture 49 Dropcheck
Lecture 50 Drop and Partial Move
Lecture 51 Drop Order (Part 1)
Lecture 52 Drop Order (Part 2)
Lecture 53 Drop Order and Self Referencial Types
Lecture 54 Avoiding Drop
Lecture 55 Panic Safety
Rust developers who want to deepen their understanding of features such as custom error handling, type coercion, lifetimes relationships, trait system intricacies, and drop semantics.