Rust Programming Part 2: Rust Advanced Concepts and Real-World Projects

Rust Programming Part 2: Rust Advanced Concepts and Real-World Projects

English | MP4 | AVC 1280×720 | AAC 44KHz 2ch | 88 Lessons (12h 58m) | 2.87 GB

Rust Programming Part 2: Rust Advanced Concepts and Real-World Projects dives into professional Rust Programming concepts and practices while exploring hands-on skills through demonstrations of real-world applications.

This hands-on course will look at how to organize Rust applications into functions, structures, and traits. You will learn how to use these techniques to achieve familiar object-oriented goals such as abstraction, encapsulation, inheritance, and polymorphism. You will also learn how Rust deals with important issues such as generic types and multithreading.

A key objective of the course is for you to understand how to structure large applications properly in Rust. To this end, the course presents a detailed walkthrough of two complete real-world applications. The first application shows how to implement a CSV file parser, and the second application shows how to access a relational database. These applications were designed so you can learn the skills needed to start using Rust effectively and efficiently.

Topics included in this course:

Structuring Rust Code dives into the details of how to define functions closures (for example, lambdas), and structs.
Advanced Rust Programming Concepts delves into defining traits, working with generics, and implementing multithreading and concurrency. You will also learn about dynamic heap allocation and integration with other programming languages.
Real-World Rust in Action shows you how to use Rust for real-world applications. It focuses on how to implement a CSV file parser and how to use Rust to access a relational database.

Learn How To:

  • Use object-oriented programming techniques
  • Implement concurrency
  • Explore additional Rust techniques
  • Implement file handling
  • Access a database
Table of Contents

Rust Programming Part 2 Introduction

Lesson 8 A Closer Look at Functions
Learning objectives
Passing value parameters
Passing reference parameters – Part 1
Passing reference parameters – Part 2
Passing mutable reference parameters
Returning a value
Returning a reference
Returning a mutable reference

Lesson 9 Nested Functions and Closures
Learning objectives
Nested functions
Getting started with closures
Using type inference with closures
Capturing variables by reference
Capturing variables by value – Part 1
Capturing variables by value – Part 2
Iterating over a collection

Lesson 10 Defining Simple Structs
Learning objectives
Defining a struct type
Creating and using struct instances
Passing struct parameters by value
Passing struct parameters by reference
Returning structs by value
Returning structs by reference

Lesson 11 Implementing Functionality in a Struct
Learning objectives
Implementing simple functionality
Implementing mutable functionality
Organizing code into modules
Defining associated functions
Defining associated data

Lesson 12 Defining Traits
Learning objectives
Trait essentials
Trait techniques
Inheritance and polymorphism
Trait inheritance
Implementing the Display trait
Implementing the Debug trait
Implementing the Drop trait
Implementing the Clone trait
Implementing the Copy trait

Lesson 13 Generics
Learning objectives
Generic structs
Generic functions
Type constraints
Implementing the PartialEq trait
Implementing the Eq and Hash traits
Implementing the PartialOrd trait
Implementing the Ord trait
Understanding how closures work
Passing closures into functions – Part 1
Passing closures into functions – Part 2

Lesson 14 Multithreading and Concurrency
Learning objectives
Spawning a thread
Joining a thread
Joining multiple threads
Capturing state
Capturing state via an explicit move
Communicating data between threads by using channels

Lesson 15 Additional Rust Techniques
Learning objectives
Introduction to boxing
Using boxing in practice – Part 1
Using boxing in practice – Part 2
Reference counting
Defining unsafe code
Integrating with other languages

Lesson 16 Rust Project 1 Implementing a CSV Parser
Learning objectives
Understanding the application scenario – Part 1
Understanding the application scenario – Part 2
Understanding the application structure
Parsing the command line
Reading and writing data in a file
Implementing a menu system
Storing date information – Part 1
Storing date information – Part 2
Storing date information – Part 3
Going further with date processing – Part 2

Lesson 17 Rust Project 2 Accessing a Relational Database
Learning objectives
Getting started
Understanding the application structure
Connecting to a database
Executing a simple SQL statement
Executing a parameterized SQL statement
Executing a query to select data
Wrapping up

Module 3 Structuring Rust Code
Module introduction

Module 4 Advanced Rust Programming Concepts
Module introduction

Module 5 Real-World Rust in Action
Module introduction

Rust Programming Part 2 Summary