UsefulLinks
Computer Science
Programming
By Language
Rust Programming
1. Getting Started with Rust
2. Rust Fundamentals
3. Understanding Ownership
4. Structuring Data with Structs
5. Enums and Pattern Matching
6. Managing Growing Projects
7. Common Collections
8. Error Handling
9. Generic Types, Traits, and Lifetimes
10. Writing Automated Tests
11. Functional Programming Features
12. Smart Pointers
13. Fearless Concurrency
14. Advanced Features
15. Foreign Function Interface
16. Rust Patterns and Best Practices
3.
Understanding Ownership
3.1.
Memory Management Concepts
3.1.1.
Stack vs Heap Memory
3.1.1.1.
Stack Allocation Characteristics
3.1.1.2.
Heap Allocation Characteristics
3.1.1.3.
Performance Implications
3.1.2.
Automatic Memory Management
3.1.3.
Manual Memory Management Problems
3.1.4.
Rust's Ownership Solution
3.2.
Ownership Rules and Principles
3.2.1.
Single Owner Rule
3.2.2.
Scope-Based Deallocation
3.2.3.
Move Semantics
3.2.3.1.
Value Moves
3.2.3.2.
Invalidation After Move
3.2.3.3.
Move vs Copy Types
3.2.4.
Copy Semantics
3.2.4.1.
Copy Trait
3.2.4.2.
Implicit Copying
3.2.4.3.
Stack-Only Data
3.2.5.
Clone Semantics
3.2.5.1.
Clone Trait
3.2.5.2.
Explicit Cloning
3.2.5.3.
Deep vs Shallow Copying
3.3.
References and Borrowing
3.3.1.
Immutable References
3.3.1.1.
Creating Immutable References
3.3.1.2.
Multiple Immutable References
3.3.1.3.
Reference Scope Rules
3.3.2.
Mutable References
3.3.2.1.
Creating Mutable References
3.3.2.2.
Exclusive Mutable Access
3.3.2.3.
Borrowing Rules Enforcement
3.3.3.
Reference Lifetime Basics
3.3.4.
Dangling Reference Prevention
3.3.5.
Reference vs Owned Values
3.4.
Slices
3.4.1.
String Slices
3.4.1.1.
&str Type
3.4.1.2.
String Literal Types
3.4.1.3.
Slicing Strings
3.4.2.
Array Slices
3.4.2.1.
&[T] Type
3.4.2.2.
Slicing Arrays
3.4.2.3.
Slice Indexing
3.4.3.
Slice Syntax and Ranges
3.4.4.
Borrowing vs Owning Slices
Previous
2. Rust Fundamentals
Go to top
Next
4. Structuring Data with Structs