1. 欢迎来到 Comprehensive Rust 🦀
  2. 授课
    1. 课程结构
    2. 键盘快捷键
    3. 翻译
  3. 使用 Cargo
    1. Rust 生态系统
    2. 代码示例
    3. 在本地运行 Cargo
  4. 第一天:上午
  5. 欢迎
  6. Hello, World
    1. 什么是 Rust?
    2. Rust 的优势
    3. Playground
  7. 类型和值
    1. Hello, World
    2. 变量
    3. 算术
    4. 类型推导
    5. 练习:Fibonacci
      1. 解答
  8. 控制流基础
    1. 代码块和作用域
    2. if 表达式
    3. match Expressions
    4. 循环控制
      1. for
      2. loop
    5. break 和 continue
      1. Labels
    6. 函数
    7. 练习:考拉兹序列
      1. 解答
  9. 第一天:下午
  10. 欢迎
  11. 元组和数组
    1. 数组(Arrays)
    2. 元组(Tuples)
    3. 数组迭代
    4. 解构
    5. 练习:嵌套数组
      1. 解答
  12. 引用
    1. 共享引用
    2. 独占引用
    3. 切片
    4. 字符串
    5. Reference Validity
    6. 练习:几何图形
      1. 解答
  13. 用户定义的类型
    1. 结构体
    2. 元组结构体
    3. 枚举
    4. 类型别名
    5. 常量
    6. static
    7. 练习:电梯事件
      1. 解答
  14. 第二天:上午
  15. 欢迎
  16. 模式匹配
    1. Irrefutable Patterns
    2. Matching Values
    3. Destructuring Structs
    4. Destructuring Enums
    5. let 控制流
      1. if let Expressions
      2. while let Statements
      3. let else
    6. 练习:表达式求值
      1. 解答
  17. 方法和特征
    1. 方法
    2. 特征(Trait)
      1. 实现 Unsafe Trait
      2. 更多 trait
      3. 共享类型
    3. 派生特征
    4. 练习:通用日志
      1. 解答
  18. 泛型
    1. 泛型函数
    2. 特征边界
    3. 泛型类型
    4. 泛型
    5. impl Trait
    6. dyn Trait
    7. 练习:通用 min 函数
      1. 解答
  19. 第二天:下午
  20. 欢迎
  21. 标准库类型
    1. 标准库
    2. 文档
    3. Option
    4. Result
    5. String
    6. Vec
    7. HashMap
    8. 练习:计数器
      1. 解答
  22. 闭包
    1. Closure Syntax
    2. Capturing
    3. Closure Traits
    4. Exercise: Log Filter
      1. 解答
  23. 标准库特征
    1. 比较
    2. 运算符
    3. From 和 Into
    4. 类型转换
    5. Read 和 Write
    6. Default,结构体更新语法
    7. 练习:ROT13
      1. 解答
  24. 第三天:上午
  25. 欢迎
  26. 内存管理
    1. 回顾:程序的内存分配
    2. 内存管理方法
    3. 所有权
    4. 移动语义
    5. Clone
    6. 复合类型
    7. Drop
    8. 练习:构建器类型
      1. 解答
  27. 智能指针
    1. Box<T>
    2. Rc
    3. Owned Trait Objects
    4. 练习:二叉树
      1. 解答
  28. 第三天:下午
  29. 欢迎
  30. 借用
    1. 借用值
    2. 借用检查
    3. Borrow Errors
    4. 内部可变性
      1. Cell
      2. RefCell
    5. 练习:健康统计
      1. 解答
  31. 结构体生命周期
    1. 生命周期注解
    2. 生命周期省略
    3. 数据结构中的生命周期
    4. 练习:Protobuf 解析
      1. 解答
  32. 第四天:上午
  33. 欢迎
  34. 迭代器
    1. Motivation
    2. Iterator Trait
    3. Iterator Helper Methods
    4. collect
    5. IntoIterator
    6. 练习:迭代器方法链
      1. 解答
  35. 模块
    1. 模块
    2. 文件系统层级结构
    3. 可见性
    4. Encapsulation
    5. use、super、self
    6. 练习:面向 GUI 库的模块
      1. 解答
  36. 测试
    1. 单元测试
    2. 其他类型的测试
    3. 编译器 Lint 和 Clippy
    4. 练习:卢恩算法
      1. 解答
  37. 第四天:下午
  38. 欢迎
  39. 错误处理
    1. Panics
    2. Result
    3. 尝试运算符
    4. 尝试转换
    5. Error 特征
    6. thiserror
    7. anyhow
    8. 练习:使用 Result 进行重写
      1. 解答
  40. 不安全 Rust
    1. Unsafe
    2. 解引用裸指针
    3. 可变的静态变量
    4. 联合体
    5. Unsafe 函数
      1. Unsafe Rust Functions
      2. Unsafe External Functions
      3. 调用 Unsafe 函数
    6. Unsafe 特征
    7. 练习:FFI 封装容器
      1. 解答
  41. Android
  42. 欢迎
  43. 设置
  44. 构建规则
    1. 可执行文件
  45. AIDL
    1. /\*\* Birthday service interface. \*/
      1. 接口
      2. Service API
      3. 服务器
      4. 服务器
      5. 部署
      6. 客户端
      7. 更改 API
      8. 实现
    2. 类型
      1. Primitive Types
      2. 数组(Arrays)
      3. 特征对象
      4. 变量
      5. Sending Files
  46. 测试
    1. GoogleTest
    2. 模拟
  47. 日志记录
  48. 互操作性
    1. 与 C 语言交互
      1. A Simple C Library
      2. Bindgen
      3. Running Our Binary
      4. A Simple Rust Library
      5. 从 C 语言调用 Rust 语言
    2. 与 C++ 交互
      1. 桥接模块
      2. Rust 桥接
      3. 生成的 C++ 代码
      4. C++ 桥接
      5. 共享类型
      6. 共享枚举
      7. Rust 错误处理
      8. C++ 错误处理
      9. 其他类型
      10. 为 Android 构建:Genrule
      11. 为 Android 构建:C++
      12. 为 Android 构建:Rust
    3. 与 Java 交互
  49. Chromium
  50. 欢迎
  51. 设置
  52. Chromium 和 Cargo 的生态对比
  53. 政策
  54. 构建规则
    1. 不安全代码
    2. 在 Chromium C++ 中导入 Rust 代码
    3. Visual Studio Code
    4. 练习
  55. 测试
    1. rust_gtest_interop 库
    2. Rust 测试的 GN 规则
    3. chromium::import! 宏
    4. 练习
  56. 与 C++ 的互操作性
    1. 绑定示例
    2. CXX 的局限性
    3. CXX 错误处理
      1. 错误处理:QR 码示例
      2. 错误处理:PNG 示例
    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 Crate
    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. 更多特征
      2. 开始使用
    5. 优化 UART 驱动程序
      1. Bitflags
      2. 多寄存器
      3. 驱动程序
    6. safe-mmio
      1. 驱动程序
      2. 开始使用
    7. 日志记录
      1. 开始使用
    8. 异常
    9. aarch64-rt
    10. 其他项目
  67. 实用 Crate
    1. zerocopy
    2. aarch64-paging
    3. buddy_system_allocator
    4. tinyvec
    5. spin
  68. Bare-Metal on Android
    1. vmbase
  69. 习题
    1. RTC 驱动
    2. 解答
  70. 并发:上午
  71. 欢迎
  72. 线程
    1. Plain Threads
    2. 范围线程
  73. 通道
    1. Senders and Receivers
    2. 无界通道
    3. 有界通道
  74. Send 和 Sync
    1. Marker Traits
    2. Send
    3. Sync
    4. 示例
  75. 共享状态
    1. Arc
    2. 互斥器(Mutex)
    3. 示例
  76. 习题
    1. 哲学家就餐问题
    2. 多线程链接检查器
    3. 解答
  77. 并发:下午
  78. 欢迎
  79. 异步基础
    1. async/await
    2. Futures
    3. State Machine
    4. Runtimes
      1. Tokio
    5. 任务
  80. Channels and Control Flow
    1. 异步通道
    2. 加入
    3. 选择
  81. 误区
    1. 阻塞执行器
    2. Pin
    3. 异步特征
    4. 消除
  82. 习题
    1. 哲学家就餐问题
    2. 广播聊天应用
    3. 解答
  83. Idiomatic Rust
  84. 欢迎
  85. Leveraging the Type System
    1. Newtype Pattern
      1. Semantic Confusion
      2. Parse, Don't Validate
      3. Is It Encapsulated?
  86. Unsafe
  87. 欢迎
  88. 设置
  89. Motivations
    1. 互操作性
    2. Data Structures
    3. Performance
  90. Foundations
    1. What is unsafe?
    2. When is unsafe used?
    3. Data structures are safe
    4. Actions might not be
    5. Less powerful than it seems
  91. 结束语
  92. 谢谢!
  93. 词汇表
  94. 其他资源
  95. 鸣谢