- 1. Introduction
- 2. Who is using?
- Bắt đầu
- 3. Cài đặt Rust
- 4. Rust Playground
- 5. Project đầu tiên
- Cơ bản
- 6. Variables
- 6.1. mut
- 6.2. uninitialized variable
- 7. Closure
- 8. Cargo
- 9. Packages và Crates
- 9.1. Package layout
- 9.2. Crate
- 9.3. use crate
- 9.3.1. use self, use super
- 9.3.2. pub use
- 9.4. Preludes
- 10. Ownership
- 11. Struct
- 12. Trait
- 12.1. Khai báo Trait
- 12.2. Implement Trait cho một Type
- 12.3. Default Implementations
- 12.4. Traits as Parameters
- 12.5. Trait Bound
- 12.6. Multiple Trait Bound
- 12.7. where Clauses
- 12.8. Returning Types that Implement Traits
- 12.9. Using Trait Bounds to Conditionally Implement Methods
- 12.10. Blanket implementations
- 12.11. Trait Inheritance
- 12.12. Supertraits
- 12.13. Auto Trait
- 12.14. Copy, Clone
- 12.15. String và &str
- 12.16. FromStr
12.17. Display
- 13. Enum
- 13.1. match Enum
- 13.2. Mang Variants ra ngoài scope của Enum
- 13.3. impl Enum
- 13.4. Option<T>
- 13.4.1. unwrap()
- 13.4.2. expect()
- 13.4.3. unwrap_or_default()
- 13.4.4. if let Some(x) = x
- 13.5. Result<T, E>
- 13.5.1. Result -> Option
- 13.5.2. Toán tử ?
- 14. Generics
- 14.1. Generic Functions
- 14.2. Generic Struct
- 14.3. Generic Enum
- 14.4. Generic Implementation
- 14.5. Generic Trait
- 14.6. Bounds
- 14.7. where
- 15. Vec
- 15.1. Iter
15.2. Sử dụng Enum để chứa nhiều loại dữ liệu
- 16. Code comment
- 16.1. Regular comments
- 16.2. Doc comments
- 17. Turbofish ::<>
- 18. macros!
- 18.1. Khác nhau giữa Macros và Functions
- 18.2. Standard Macros
- 18.3. println!
- 18.4. format!
- 18.5. todo!
- 18.6. macro_rules!
- 19. match
- 19.1. Matching giá trị
- 19.2. Matching Named Variables
- 19.3. Matching Multiple
- 20. #[attributes]
- 21. Xử lý lỗi
- 21.1. panic
- 21.2. Option
- 21.3. Result
- 21.3.1. Result map
- 21.3.2. Result alias
- 21.4. Boxing error
- 21.5. Custom error
- 22. Viết Tests
- 22.1. Tổ chức Tests
- 22.1.1. Unit Tests
- 22.1.2. Integration Tests
- 22.1.3. Doc Tests
- 22.2. Xung đột biến môi trường
- 23. Viết Docs
- 23.1. Doc comments
- 23.2. Sử dụng README.md làm crate document
- Nâng cao
- 24. Smart Pointers
- 24.1. Box<T>
- 24.2. Rc<T>, Reference Counted
- 24.3. Cow
- 24.4. Ref
- 24.5. RefMut
- 25. Saturating<T>
- Design patterns
- 26. Behavioural Patterns
- 26.1. Strategy Pattern
- 26.2. Command Pattern
- 27. Creational Patterns
- 27.1. Builder Pattern
- 28. Structural Patterns
- 28.1. Prefer Small Crates
- Crates hay dùng
- 29. regex
- 30. chrono
- 31. async_trait
- 32. lazy_static
- 33. serde
- 33.1. serde_json
- 33.2. serde_toml
- 33.3. serde_csv
- 33.4. serde_yaml
- 34. tokio
35. actix-web
- 36. anyhow
37. clap
- 38. log
- 38.1. env_logger
39. config
- 40. indoc
- 41. rayon
- 42. polars
- Data Engineering
- 43. Xử lý và phân tích dữ liệu
- 43.1. Polars
- 43.2. serde
- 43.2.1. serde_json
- 43.2.2. serde_toml
- 43.2.3. serde_csv
- 43.2.4. serde_yaml
- 44. High-performance data pipeline
- 45. Building scalable data-driven applications using Rust
- 46. Rust as an alternative to Python for data engineering tasks
- Rust Idioms
47. Functional programming
48. Use borrowed types for arguments
- 49. Concatenating strings with format!
- 50. Constructor
- 50.1. The Default Trait
51. Finalisation in destructors
- 52. Temporary mutability
- 53. Aim For Immutability in Rust