1. 歡迎參加 Comprehensive Rust 🦀 課程
  2. 講授課程
    1. 課程架構
    2. 鍵盤快速鍵
    3. 翻譯
  3. 使用 Cargo
    1. Rust 生態系統
    2. 程式碼範例
    3. 在本機執行 Cargo
  4. 第 1 天:上午
  5. 歡迎
  6. Hello, World
    1. 什麼是 Rust?
    2. Rust 的優點
    3. Playground
  7. 型別和值
    1. Hello, World
    2. 變數
    3. 算術
    4. 字串 (String)
    5. 型別推斷
    6. 練習:費波那契數列
      1. 解決方案
  8. 基本的控制流程概念
    1. if 表達式
    2. for 迴圈
      1. for
      2. loop 迴圈
    3. break 和 continue
      1. 標籤
    4. 區塊 (block) 和範疇 (scope)
      1. 範圍和遮蔽
    5. 函式
    6. 巨集
    7. 練習:考拉茲序列
      1. 解決方案
  9. 第 1 天:下午
  10. 歡迎
  11. 元組和陣列
    1. 陣列
    2. 元組
    3. 疊代器
    4. 模式配對
    5. 練習:巢狀陣列
      1. 解決方案
  12. 參照
    1. 共用列舉
    2. 迷途參照
    3. 練習:幾何圖形
      1. 解決方案
  13. 使用者定義的型別
    1. 結構體
    2. 元組結構體
    3. 列舉
    4. 靜態和常數
    5. 型別別名
    6. 練習:電梯事件
      1. 解決方案
  14. 第 2 天:上午
  15. 歡迎
  16. 模式配對
    1. Matching Values
    2. 解構列舉
    3. 控制流程
    4. 練習:運算式求值
      1. 解決方案
  17. Read 和 Write
    1. 方法
    2. 特徵
      1. 實作不安全的特徵
      2. Associated Types
    3. 衍生特徵
    4. 練習:泛型 Logger
      1. 解決方案
  18. 泛型
    1. Extern 函式
    2. 泛型資料型別
    3. 特徵界限
    4. impl Trait
    5. 練習:泛型 min
      1. 解決方案
  19. 第 2 天:下午
  20. 歡迎
  21. 標準函式庫
    1. 標準函式庫
    2. 說明文件測試
    3. Option
    4. Result
    5. String
    6. Vec
    7. HashMap
    8. 練習:計數器
      1. 解決方案
  22. 標準函式庫
    1. 比較
    2. 疊代器
    3. From 和 Into
    4. 測試
    5. Read 和 Write
    6. Default (結構體更新語法)
    7. 閉包
    8. 練習:ROT13 (迴轉13位)
      1. 解決方案
  23. 第 3 天:上午
  24. 歡迎
  25. 記憶體管理
    1. 檢查程式記憶體
    2. 自動記憶體管理
    3. 所有權
    4. 移動語意
    5. Clone
    6. Copy 型別
    7. Drop
    8. 練習:建構工具型別
      1. 解決方案
  26. 智慧指標
    1. Box<T>
    2. Rc
    3. 特徵物件
    4. 練習:二元樹
      1. 解決方案
  27. 第 3 天:下午
  28. 歡迎
  29. 借用
    1. 借用
    2. 借用
    3. 內部可變性 (Interior Mutability)
    4. 練習:衛生統計資料
      1. 解決方案
  30. 生命週期
    1. Slices: &\[T\]
    2. 迷途參照
    3. 函式呼叫中的生命週期
    4. 生命週期
    5. 生命週期
    6. 練習:Protobuf 剖析
      1. 解決方案
  31. 第 4 天:上午
  32. 歡迎
  33. 疊代器
    1. Iterator
    2. IntoIterator
    3. FromIterator
    4. 練習:疊代器方法鏈結
      1. 解決方案
  34. 模組
    1. 模組
    2. 檔案系統階層
    3. 能見度
    4. use、super、self
    5. 練習:GUI 程式庫的模組
      1. 解決方案
  35. 測試
    1. 測試模組
    2. 其他資源
    3. 編譯器檢查 (Lint) 和 Clippy
    4. 盧恩演算法
      1. 解決方案
  36. 第 4 天:下午
  37. 歡迎
  38. 錯誤處理
    1. 恐慌
    2. 疊代器
    3. 隱含轉換
    4. Drop 特徵
    5. From 和 Into
    6. 使用 Result 進行結構化錯誤處理
      1. 解決方案
  39. 不安全的 Rust
    1. 不安全的 Rust
    2. 對裸指標解參考
    3. 可變的靜態變數
    4. 聯合體
    5. 呼叫不安全的函式
    6. 實作不安全的特徵
    7. 練習:封裝外部函式介面 (FFI)
      1. 解決方案
  40. Android
  41. 歡迎
  42. 設定
  43. 建構規則
    1. 二進位檔
    2. 函式庫
  44. AIDL
    1. Birthday Service Tutorial
      1. 介面
      2. Service API
      3. 伺服器
      4. 伺服器
      5. 部署
      6. 用戶端
      7. 改寫 API
      8. 實作
    2. 類型
      1. Primitive Types
      2. 陣列
      3. 特徵物件
      4. 變數
      5. Sending Files
  45. 測試
    1. GoogleTest
    2. 模擬 (Mocking)
  46. 記錄
  47. 互通性
    1. 與 C 的互通性
      1. 使用 Bindgen 呼叫 C
      2. 從 C 呼叫 Rust
    2. 與 C++ 的互通性
      1. 測試模組
      2. Rust 橋接器
      3. 產生的 C++
      4. C++ 橋接器
      5. 共用型別
      6. 共用列舉
      7. 錯誤處理
      8. 錯誤處理
      9. 其他型別
      10. 針對 Android 建構:C++
      11. 針對 Android 建構:Genrules
      12. 針對 Android 建構:Rust
    3. 與 Java 的互通性
  48. 練習
  49. Chromium
  50. 歡迎
  51. 設定
  52. 比較 Chromium 和 Cargo 的生態系統
  53. 政策
  54. 建構規則
    1. 不安全的 Rust
    2. 在 Chromium C++ 中使用 Rust 程式碼
    3. Visual Studio Code
    4. 練習
  55. 測試
    1. rust_gtest_interop 程式庫
    2. Rust 測試適用的 GN 規則
    3. chromium::import! 巨集
    4. 練習
  56. 互通性
    1. 範例
    2. CXX 的限制
    3. 錯誤處理
      1. 錯誤處理
      2. 錯誤處理
    4. 在 Chromium 中使用 CXX
    5. 練習
  57. 新增第三方 Crate
    1. 設定 Cargo.toml
    2. 設定 gnrt_config.toml
    3. 下載 Crate
    4. 產生 gn 建構規則
    5. 解決問題
      1. 建構用於產生程式碼的指令碼
      2. 建構用於建立 C++ 或執行任意動作的指令碼
    6. 使用 Crate
    7. 程式庫審查和稽核
    8. 提交為 Chromium 原始碼
    9. 保持 Crate 為最新版本
    10. 練習
  58. 融會貫通 - 練習題
  59. 練習題的參考答案
  60. 裸機開發:上午
  61. 歡迎
  62. no_std
    1. 最小限度的範例
    2. alloc
  63. 微控制器
    1. 原始 MMIO
    2. PAC
    3. HAL Crates
    4. 開發板支援 Crate
    5. 型別狀態模式
    6. embedded-hal
    7. probe-rs、cargo-embed
      1. 偵錯
    8. 其他專案
  64. 練習
    1. 指南針
    2. 解決方案
  65. 裸機開發:下午
  66. 應用程式處理器
    1. 準備使用 Rust
    2. 行內組語
    3. MMIO
    4. 編寫 UART 驅動程式
      1. 其他特徵
    5. 經改良的 UART 驅動程式
      1. Bitflags
      2. 多個暫存器
      3. 驅動程式
      4. 開始使用
    6. 記錄
      1. 開始使用
    7. 例外狀況
    8. 其他專案
  67. 實用的 Crate
    1. zerocopy
    2. aarch64-paging
    3. buddy_system_allocator
    4. tinyvec
    5. spin
  68. Android
    1. vmbase
  69. 練習
    1. RTC 驅動程式
    2. 解決方案
  70. 並行:上午
  71. 歡迎
  72. 執行緒
    1. 限定範圍執行緒
  73. 通道
    1. 無界限的通道
    2. 有界限的通道
  74. Send 和 Sync
    1. Send
    2. Sync
    3. 範例
  75. 共享狀態
    1. Arc
    2. Mutex
    3. 範例
  76. 練習
    1. 哲學家就餐問題
    2. 多執行緒連結檢查器
    3. 解決方案
  77. 並行:下午
  78. Async 基本概念
    1. async/await
    2. Futures
    3. Runtimes
      1. Tokio
    4. 工作
    5. 非同步管道
  79. 控制流程
    1. 加入
    2. 選取
  80. 陷阱
    1. 阻占執行器
    2. Pin
    3. 非同步特徵
    4. 安裝
  81. 練習
    1. 哲學家就餐問題
    2. 廣播聊天應用程式
    3. 解決方案
  82. 結語
  83. 謝謝!
  84. 詞彙解釋
  85. 其他資源
  86. 出處清單