## 🟢 Beginner Level - [x] 1. Introduction to Rust & Installation - [x] 2. Cargo and Crates - [x] 3. Variables and Mutability - [x] 4. Data Types - [x] 4.5 Advanced => Strings, Array - [x] 4.6 Advanced => Tuples - [x] 4.7 Advanced => Vectors - [x] 4.8 Advanced => Hashmaps - [x] 5. Functions - [x] 6. Control Flow (`if`, `match`, loops) - [] 7. Ownership - [] 8. References and Borrowing - [] 9. Slices - [] 10. Structs - [] 11. Enums and Pattern Matching - [] 12. `Option` and `Result` - [] 13. Collections (`Vec`, `HashMap`, etc.) - [] 14. Error Handling - [] 15. Modules - [ ] 15.1. File Structure - [ ] 16. Packages, Crates, and Modules - [ ] 17. Common Macros (`println!`, `dbg!`, `vec!`) --- ## 🟡 Intermediate Level - [ ] 18. Traits and Trait Bounds - [ ] 19. Generics - [ ] 20. Lifetimes - [ ] 21. Closures and Iterators - [ ] 22. Smart Pointers (`Box`, `Rc`, `RefCell`) - [ ] 23. Interior Mutability - [ ] 24. Concurrency and Multithreading - [ ] 25. Channels and Message Passing - [ ] 26. Async Programming with `async/await` - [ ] 27. Crates like `tokio`, `async-std` - [ ] 28. Testing (`#[test]`, test modules) - [ ] 29. Workspaces - [ ] 30. Error Handling with `thiserror`, `anyhow` --- ## 🔵 Advanced Level - [ ] 31. Procedural Macros - [ ] 32. Unsafe Rust - [ ] 33. FFI (Foreign Function Interface) - [ ] 34. Advanced Lifetimes and HRTBs - [ ] 35. Zero-Cost Abstractions - [ ] 36. Pinning and `Unpin` - [ ] 37. Custom Smart Pointers - [ ] 38. Writing DSLs with Macros - [ ] 39. Trait Objects and Dynamic Dispatch - [ ] 40. Memory Layout and Alignment - [ ] 41. Embedded Systems in Rust - [ ] 42. Writing Web Servers (`actix-web`, `warp`, `axum`) - [ ] 43. Building CLIs with `clap`, `structopt` - [ ] 44. Writing Libraries and Publishing to `crates.io` - [ ] 45. Performance Optimization & Benchmarking - [ ] 46. Compiler Plugins and MIR (Mid-level IR)