- 介绍
- 1. 认识安全和不安全
- 1.1. 安全和不安全如何交互
- 1.2. Unsafe Rust 能做什么
- 1.3. 使用 Unsafe
- 2. Rust 中的数据布局
- 2.1. repr(Rust)
- 2.2. 非正常大小的类型
- 2.3. 可选的数据布局
- 3. 所有权
- 3.1. 引用
- 3.2. 别名
- 3.3. 生命周期
- 3.4. 生命周期的局限
- 3.5. 生命周期推导
- 3.6. 不受约束的生命周期
- 3.7. Higher-Rank Trait Bounds
- 3.8. 子类型化和变异性
- 3.9. 丢弃检查
- 3.10. 幽灵数据
- 3.11. 拆分 Borrows
- 4. 类型转换
- 4.1. 强转
- 4.2. 点运算符
- 4.3. Casts
- 4.4. Transmutes
- 5. 未初始化内存
- 5.1. Checked
- 5.2. 丢弃标志
- 5.3. Unchecked
- 6. 基于所有权的资源管理
- 6.1. 构造
- 6.2. 析构
- 6.3. 泄漏
- 7. Unwinding
- 7.1. 异常安全
- 7.2. Poisoning
- 8. 并发
- 8.1. 数据竞争
- 8.2. Send 和 Sync
- 8.3. Atomics
- 9. 实现 Vec
- 9.1. 布局
- 9.2. 分配内存
- 9.3. Push 和 Pop
- 9.4. 释放内存
- 9.5. Deref
- 9.6. 插入和删除
- 9.7. IntoIter
- 9.8. RawVec
- 9.9. Drain
- 9.10. 处理零大小的类型
- 9.11. 最终代码
- 10. 实现 Arc 和 Mutex
- 10.1. 实现 Arc
- 10.1.1. 布局
- 10.1.2. 基本代码
- 10.1.3. 克隆
- 10.1.4. 丢弃
- 10.1.5. 最终代码
- 11. 外部函数接口(FFI)
- 12. 标准库之下
- 12.1. #[panic_handler]