1. به Comprehensive Rust خوش آمدید 🦀
  2. اجرای دوره
    1. مباحث دوره
    2. میان‌برهای صفحه کلید
    3. ترجمه
  3. استفاده از cargo
    1. اکوسیستم Rust
    2. نمونه کد
    3. اجرای کد به صورت لوکال با cargo
  4. روز ۱: صبح
  5. خوش آمدید
  6. سلام, دنیا
    1. زبان Rust چیست؟
    2. مزیت‌های زبان Rust
    3. Playground
  7. تایپ‌ها و مقادیر
    1. سلام, دنیا
    2. متغیرها
    3. مقادیر
    4. عملگرهای ریاضی
    5. تعیین تایپ ضمنی
    6. تمرین: دنباله فیبوناچی
      1. راه‌حل
  8. مبانی پایه کنترل جریان
    1. عبارات if
    2. حلقه‌ها
      1. for
      2. loop
    3. break و continue
      1. برچسب‌ها
    4. بلوک‌ها و محدوده‌ها
      1. محدوده‌ها و سایه‌گذاری
    5. توابع
    6. ماکروها
    7. تمرین: دنباله Collatz
      1. راه‌حل
  9. روز ۱: بعد از ظهر
  10. خوش آمدید
  11. تاپل ها و آرایه ها
    1. آرایه‌ها
    2. تاپل‌ها
    3. تکرار ارایه
    4. الگو‌ها و ضدِ ساختارها
    5. تمرین: آرایه‌های تو در تو
      1. راه‌حل
  12. مراجع
    1. مراجع اشتراکی
    2. مراجع انحصاری
    3. برش‌ها
    4. رشته‌ها
    5. تمرین: هندسه
      1. راه‌حل
  13. تایپ‌های تعریف شده توسط کاربر
    1. ساختارهای نام‌دار
    2. ساختار‌ تاپل‌ها
    3. Enums
    4. Const
    5. Static
    6. نام‌های مستعار تایپ
    7. تمرین: رویدادهای آسانسور
      1. راه‌حل
  14. روز ۲: صبح
  15. خوش آمدید
  16. تطبیق
    1. تطابق مقادیر
    2. تخریب ساختارها
    3. تخریب ساختار Enums
    4. کنترل جریان Let
    5. تمرین: ارزیابی عبارت
      1. راه‌حل
  17. متدها و تریت‌ها
    1. متدها
    2. Traits
      1. پیاده سازی Traits
      2. Supertraits
      3. تایپ‌های وابسته
    3. Deriving
    4. تمرین: توابع Generic
      1. راه‌حل
  18. روز دوم: عصر
  19. خوش آمدید
  20. Generics
    1. توابع Generic
    2. دیتا تایپ‌های Generic
    3. Generic Traits
    4. Trait Bounds
    5. impl Trait
    6. dyn Trait
    7. تمرین: Generic min
      1. راه‌حل
  21. کتابخانه‌ استاندارد تایپ‌ها
    1. کتابخانه‌ استاندارد
    2. مستندات
    3. Option
    4. Result
    5. String
    6. Vec
    7. HashMap
    8. تمرین: شمارنده
      1. راه‌حل
  22. کتابخانه استاندارد Traits
    1. مقایسه
    2. اپراتورها
    3. From and Into
    4. Casting
    5. Read and Write
    6. Default, struct update syntax
    7. Closures
    8. تمرین: ROT13
      1. راه‌حل
  23. روز ۳: صبح
  24. خوش آمدید
  25. مدیریت حافظه
    1. بررسی حافظه برنامه
    2. رویکردهای مدیریت حافظه
    3. مالکیت
    4. مفاهیم جابه‌جایی
    5. Clone
    6. کپی کردن تایپ‌ها
    7. Drop
    8. تمرین: تایپ‌های سازنده
      1. راه‌حل
  26. اشاره‌گرهای هوشمند
    1. \<Box\<T
    2. Rc
    3. Owned Trait Objects
    4. تمرین: درخت باینری
      1. راه‌حل
  27. روز ۳: بعد از ظهر
  28. خوش آمدید
  29. قرض‌گیری (Borrowing)
    1. قرض‌گیری یک مقدار
    2. چک کردن قرض
    3. خطاهای قرض‌گیری
    4. تغییرپذیری داخلی
    5. تمرین: آمار سلامتی
      1. راه‌حل
  30. طول‌عمر
    1. تفسیر‌های طول عمر
    2. حذف طول عمر
    3. طول عمر ساختارها
    4. تمرین: تجزیه Protobuf
      1. راه‌حل
  31. روز چهارم: صبح
  32. خوش آمدید
  33. Iterators
    1. Iterator
    2. IntoIterator
    3. FromIterator
    4. تمرین: روش Iterator Chaining
      1. راه‌حل
  34. ماژول‌ها
    1. ماژول‌ها
    2. سلسله‌ مراتب فایل‌سیستم
    3. قابلیت دید
    4. use, super, self
    5. تمرین: ماژولهایی برای کتابخانه رابط کاربری گرافیکی
      1. راه‌حل
  35. تست‌کردن
    1. تست‌ ماژول‌ها
    2. انواع دیگر تست‌ها
    3. کامپایلر Lints و Clippy
    4. تمرین: الگوریتم Luhn
      1. راه‌حل
  36. روز چهارم: بعد از ظهر
  37. خوش آمدید
  38. مدیریت خطا
    1. در مورد Panicها
    2. Result
    3. عملگرد Try
    4. این تبدیل‌ها (Conversions) را امتحان کنید
    5. Error Trait
    6. thiserror و anyhow
    7. تمرین: بازنویسی با Result
      1. راه‌حل
  39. Rust ناایمن
    1. ناایمن
    2. عدم ارجاع به اشاره‌گرهای خام
    3. متغیرهای ثابت قابل تغییر
    4. نوع داده چندگانه
    5. توابع ناامن
    6. صفات (Traits) ناامن
    7. تمرین: FFI Wrapper
      1. راه‌حل
  40. اندروید
  41. خوش آمدید
  42. تنظیم
  43. قوانین ساخت
    1. باینری
    2. کتابخانه
  44. AIDL
    1. آموزش سرویس Birthday
      1. رابط (Interface)
      2. Service API
      3. سرویس
      4. سرور
      5. استقرار
      6. کاربر
      7. تغییر دادن API
      8. پیاده سازی
    2. AIDL Types
      1. انواع اولیه
      2. تایپ‌های اٰرایه‌ای
      3. Sending Objects
      4. بسته‌بندی‌ها
      5. ارسال فایل‌ها
  45. تست‌کردن
    1. GoogleTest
    2. Mocking
  46. لاگ
  47. قابلیت همکاری
    1. با C
      1. فراخوانی C با Bindgen
      2. فراخوانی Rust از C
    2. با C++
      1. ماژول پل
      2. Rust Bridge
      3. Generated C++
      4. پل ++C
      5. انواع مشترک
      6. Shared Enums
      7. مدیریت خطا Rust
      8. مدیریت خطا ++C
      9. تایپ‌های اضافی
      10. روش Build برای اندروید: ++C
      11. روش Build برای اندروید: ژانرها
      12. روش Build برای اندروید: Rust
    3. با جاوا
  48. تمرین‌ها
  49. Chromium
  50. خوش آمدید
  51. تنظیم
  52. مقایسه Chromium و اکوسیستم Cargo
  53. قواعد
  54. قوانین ساخت
    1. Rust ناایمن
    2. بسته به Rust Code از ++Chromium C
    3. Visual Studio Code
    4. تمرین‌ها
  55. تست‌کردن
    1. rust_gtest_interop Library
    2. قواعد GN برای تست‌های Rust
    3. chromium::import! Macro
    4. تمرین‌ها
  56. قابلیت همکاری با ++C
    1. نمونه اتصال‌ها (Bindingها)
    2. محدودیت‌های CXX
    3. مدیریت خطا CXX
      1. مدیریت خطا: مثال QR
      2. مدیریت خطا: مثال PNG
    4. استفاده از CXX در Chromium
    5. تمرین‌ها
  57. اضافه‌کردن Crateهای شخص ثالث
    1. پیکربندی Cargo.toml
    2. تنظیمات gnrt_config.toml
    3. دانلود کردن Crateها
    4. ایجاد قواعد gn Build
    5. حل مشکلات
      1. ساخت اسکریپت‌هایی که کد را تولید می‌کنند
      2. ساخت اسکریپت‌هایی که ++C را Build می‌کند یا اقدامات دلخواه انجام می‌دهند
    6. وابسته به یک Crate
    7. بررسی‌ها و ممیزی‌ها
    8. کد‌های Chromium را بررسی کنید
    9. به روز نگه داشتن Crateها
    10. تمرین‌ها
  58. دور همی تمرین کنید
  59. راه‌حل‌های تمرین
  60. با Bare Metal: صبح
  61. خوش آمدید
  62. no_std
    1. یک مثال ساده
    2. alloc
  63. میکروکنترلرها
    1. MMIO خام
    2. PACs
    3. HAL Crates
    4. Board Support Crates
    5. انواع State Pattern
    6. embedded-hal
    7. probe-rs, cargo-embed
      1. اشکال یابی (Debugging)
    8. باقی پروژه‌ها
  64. تمرین‌ها
    1. قطب‌نما
    2. راه حل‌ها
  65. با Bare Metal: عصر
  66. پردازنده‌های برنامه
    1. آماده شدن برای Rust
    2. اسمبلی درونی
    3. MMIO
    4. بریم یک درایور UART بنویسیم
      1. صفت‌های بیشتر
    5. یک درایور بهتر UART
      1. پرچم‌های بیتی (Bitflags)
      2. رجیستر‌های چندگانه
      3. درایور
      4. استفاده از آن
    6. لاگ
      1. استفاده از آن
    7. استثناها
    8. باقی پروژه‌ها
  67. جعبه‌های (Crates) کاربردی
    1. zerocopy
    2. aarch64-paging
    3. buddy_system_allocator
    4. tinyvec
    5. spin
  68. اندروید
    1. vmbase
  69. تمرین‌ها
    1. درایور RTC
    2. راه حل‌ها
  70. همزمانی: صبح
  71. خوش آمدید
  72. تردها
    1. تردهای ساده
    2. محدوده تردها
  73. کانال‌ها
    1. Senders و Receivers
    2. کانال‌های نامحدود
    3. کانال‌های محدود
  74. Send و Sync
    1. ویژگی‌های نشانگر
    2. Send
    3. Sync
    4. مثال‌ها
  75. ناحیه‌های مشترک
    1. Arc
    2. Mutex
    3. مثال
  76. تمرین‌ها
    1. فلسفه Dining
    2. جستجوگر پیوند چند تِردی
    3. راه حل‌ها
  77. همزمانی: عصر
  78. خوش آمدید
  79. مبانی Async
    1. async/await
    2. Futures
    3. Runtimes
      1. Tokio
    4. Task
  80. کانال‌ها و Control Flow
    1. کانال‌های Async
    2. Join
    3. Select
  81. Pitfallها
    1. مسدود کردن Executor
    2. Pin
    3. صفات Async
    4. لغو
  82. تمرین‌ها
    1. فلسفه Dining
    2. پخش برنامه چت
    3. راه حل‌ها
  83. کلمات آخر
  84. سپاس!
  85. واژه‌نامه
  86. منابع دیگر
  87. اعتبارها