Zenler Player
Your course is loading. Hang tight.
Master The Rust Programming Language : Beginner To Advanced
Back to curriculum
0% Complete
0% Complete
Introduction
How Rust is different from other programming languages? Immutability
Course repository
Borrowing
Rust automatically deallocates heap memory
Features related to type inference, ownership, error handling, and dangling pointers
Create, Build, Run a Rust program
Print related macros in Rust
format!() and named place holders
Exercise-diy-1
Useful cargo tools
Printing in hex and binary formats
Exercise-diy-2
Exercise-diy-3
r and r# tagging of strings
Variables, mutability and data types explanation
'as' keyword and storing ASCII values
char data type
Exercise-diy-4
Array and array iteration
Exercise-diy-5
Arithmetic operators and short hand notations
Writing a Function in Rust
Unit testing in Rust
Writing test cases
Standard library assert macros
Writing test cases contd.
References
Borrow, Borrower and Referent
slice data type
Std. library functions of the slice data type
Using if..else as statements and expressions
The 'match' statement
Using if..else if..else and if let..else if let…else
comparision and logical operators
Bitwise Operators
Exercise-diy-6
Exercise-diy-6-2
Strings in Rust
Strings and UTF-8 format
Slice of a String
Converting String to Slice and vice versa
String concatination
String Indexing
Exercise-diy-7-Part-1
Exercise-diy-7-Part-2
Exercise-diy-7-Part-3
Ownership, Move, and Copy semantics
Call by value and Call by reference
Loop statements in Rust
Different ways of Iteration using for..in loop
Solution
while and while let loops
Exercise-diy-8
Tuple datatype
Pattern matching with tuples
Tuple matching and Move
ref keyword
Creating and Initializing a struct
Is struct 'move' or 'copy'?
Struct and Default trait
Tuple struct and Unit struct
Writing Struct methods
Associated function as Constructor of a Struct
Pattern matching with Struct
ref and @ usage with struct pattern matching
Defining an Enum in Rust
Methods and associated functions of an Enum
Pattern matching using Enums
Option type
Option Usage
Introduction to Vectors
Vectors under the hood
Vector indexing
Slice of a vector
Vector methods: push(), pop(), shrink_to_fit()
Exercise-diy-11
Vector methods: drain(), extract_if()
Vector methods: retain(), retain_mut()
Vector methods: split() and friends
Vector methods: splice(), append(), extend()
Vector methods: prepend using index() and splice()
VecDeque
Enum Result
Error handling using Result enum
Exercise on Result enum
Error propagation operator ( ? )
Converting 'Option' to 'Result' type
unwrap() and expect() methods
unwrap_err()
Std. Library error types
Handling std::io::Error
Numeric Errors : Exercise
Numeric Errors : Exercise contd
Exercise on error conversion
Exercise on error conversion contd.
map_err() usage
Auto conversion of errors
HashMap and its methods part-1
HashMap and its methods part-2
Generics syntax and Writing generic functions
Function with multiple generic type parameters
Generic structs and enums
Exercise-diy-13
Lifetime and scope
Lifetime annotations example
Lifetime elision rules
Lifetime annotations with structs
Lifetime annotations with structs contd.
Lifetime annotations with struct methods
Const. and Static variables
Introduction to Trait and Trait methods
Associated types of a Trait
Exercise: Implementing Display trait for user defined structure part-1
Exercise: Implementing Display trait for user defined structure part-2
Exercise: Implementing Display trait for user defined structure part-3
Trait bounds
Trait objects and Virtual table
Boxing the DST
Memory layout of Boxing of Trait Object
Introduction to Closures and Syntax
Closure capturing environment
Traits associated with closures
Behaviour of closure variables
Passing closure as arguments to a function part-1
Passing closure as arguments to a function part-2
Closures as Struct member fields
Memory layout of the program
Types of Closures
Exercise on Closure
Closures as Struct member fields[Using Generics]
Closures and event handling
Introduction to Iterators
Trait 'Iterator' Vs Trait 'IntoIterator'
Creating an custom iterator
Iterating over custom iterator by value, mutable and immutable borrow
Creating an custom iterator: Refactoring next method
Trait 'Iterator' Vs Trait 'IntoIterator'
Exercise: Implementing a custom iterator
Solution: Implementing a custom iterator
Implementing Trait 'IntoIterator' for a custom type Part-1
Implementing Trait 'IntoIterator' for a custom type Part-2
Implementing Trait 'IntoIterator' for a custom type Part-3
Implementing Trait 'IntoIterator' for a custom type Part-4-Solution
Iterator Methods
for_each() as an alternate to for loop
iter(), iter_mut() and into_iter() explanation
Commonly used iterator adapters
map()
collect()
Using collect() with custom collection
Implementing Trait 'FromIterator' on a type
filter()
package, crate, cargo.toml , cargo.lock
[package] section of cargo.toml, Semantic Versioning
Package structuring rules
[dependencies] section of cargo.toml
Rust editions
Section 1: Introduction
Introduction
Preview
How Rust is different from other programming languages? Immutability
Preview
Course repository
Borrowing
Preview
Rust automatically deallocates heap memory
Preview
Features related to type inference, ownership, error handling, and dangling pointers
Preview
Create, Build, Run a Rust program
Preview
Section 2: Prints
Print related macros in Rust
format!() and named place holders
Exercise-diy-1
Useful cargo tools
Printing in hex and binary formats
Exercise-diy-2
Exercise-diy-3
r and r# tagging of strings
Section 3: Variables and Data types
Variables, mutability and data types explanation
Preview
'as' keyword and storing ASCII values
Preview
char data type
Preview
Exercise-diy-4
Array and array iteration
Exercise-diy-5
Arithmetic operators and short hand notations
Writing a Function in Rust
Section 4: Testing in Rust
Unit testing in Rust
Writing test cases
Preview
Standard library assert macros
Writing test cases contd.
Section 5: References
References
Borrow, Borrower and Referent
slice data type
Std. library functions of the slice data type
Section 6: Decision making
Using if..else as statements and expressions
The 'match' statement
Using if..else if..else and if let..else if let…else
comparision and logical operators
Bitwise Operators
Exercise-diy-6
Exercise-diy-6-2
Section 7: Strings
Strings in Rust
Strings and UTF-8 format
Slice of a String
Converting String to Slice and vice versa
String concatination
String Indexing
Exercise-diy-7-Part-1
Exercise-diy-7-Part-2
Exercise-diy-7-Part-3
Section 8: Ownership
Ownership, Move, and Copy semantics
Call by value and Call by reference
Section 9: Loops
Loop statements in Rust
Different ways of Iteration using for..in loop
Solution
while and while let loops
Exercise-diy-8
Section 10: Tuples
Tuple datatype
Pattern matching with tuples
Tuple matching and Move
ref keyword
Section 11: Structure
Creating and Initializing a struct
Preview
Is struct 'move' or 'copy'?
Preview
Struct and Default trait
Tuple struct and Unit struct
Writing Struct methods
Associated function as Constructor of a Struct
Pattern matching with Struct
ref and @ usage with struct pattern matching
Section 12: Enums
Defining an Enum in Rust
Methods and associated functions of an Enum
Pattern matching using Enums
Option type
Option Usage
Section 13: Vectors
Introduction to Vectors
Vectors under the hood
Preview
Vector indexing
Slice of a vector
Vector methods: push(), pop(), shrink_to_fit()
Exercise-diy-11
Vector methods: drain(), extract_if()
Vector methods: retain(), retain_mut()
Vector methods: split() and friends
Vector methods: splice(), append(), extend()
Vector methods: prepend using index() and splice()
VecDeque
Section 14: Error Handling
Enum Result
Preview
Error handling using Result enum
Preview
Exercise on Result enum
Error propagation operator ( ? )
Converting 'Option' to 'Result' type
unwrap() and expect() methods
unwrap_err()
Std. Library error types
Handling std::io::Error
Numeric Errors : Exercise
Numeric Errors : Exercise contd
Exercise on error conversion
Exercise on error conversion contd.
map_err() usage
Auto conversion of errors
Section 15: HashMap
HashMap and its methods part-1
HashMap and its methods part-2
Section 16: Generics
Generics syntax and Writing generic functions
Function with multiple generic type parameters
Generic structs and enums
Exercise-diy-13
Section 17: Lifetimes
Lifetime and scope
Lifetime annotations example
Lifetime elision rules
Lifetime annotations with structs
Lifetime annotations with structs contd.
Lifetime annotations with struct methods
Section 18: Const and Static
Const. and Static variables
Section 19: Traits
Introduction to Trait and Trait methods
Associated types of a Trait
Exercise: Implementing Display trait for user defined structure part-1
Exercise: Implementing Display trait for user defined structure part-2
Exercise: Implementing Display trait for user defined structure part-3
Trait bounds
Trait objects and Virtual table
Boxing the DST
Memory layout of Boxing of Trait Object
Section 20: Closures
Introduction to Closures and Syntax
Closure capturing environment
Traits associated with closures
Behaviour of closure variables
Passing closure as arguments to a function part-1
Passing closure as arguments to a function part-2
Closures as Struct member fields
Memory layout of the program
Types of Closures
Exercise on Closure
Closures as Struct member fields[Using Generics]
Closures and event handling
Section 21: Iterators
Introduction to Iterators
Trait 'Iterator' Vs Trait 'IntoIterator'
Creating an custom iterator
Iterating over custom iterator by value, mutable and immutable borrow
Creating an custom iterator: Refactoring next method
Trait 'Iterator' Vs Trait 'IntoIterator'
Exercise: Implementing a custom iterator
Solution: Implementing a custom iterator
Implementing Trait 'IntoIterator' for a custom type Part-1
Implementing Trait 'IntoIterator' for a custom type Part-2
Implementing Trait 'IntoIterator' for a custom type Part-3
Implementing Trait 'IntoIterator' for a custom type Part-4-Solution
Iterator Methods
Preview
for_each() as an alternate to for loop
iter(), iter_mut() and into_iter() explanation
Commonly used iterator adapters
map()
collect()
Using collect() with custom collection
Implementing Trait 'FromIterator' on a type
filter()
Section 22: Structuring Code in Rust
package, crate, cargo.toml , cargo.lock
[package] section of cargo.toml, Semantic Versioning
Package structuring rules
[dependencies] section of cargo.toml
Rust editions
×
This is an unpublished lesson. This lesson will not be shown for students unless you set it as Public.
Back to Dashboard
No contents are available in this lesson!
No lessons available !
Back to Dashboard
Lesson contents locked
Enroll to unlock this lesson.
Enroll to unlock
Next Lesson