1.
引言
2.
习惯用法
2.1.
以借用类型为参数
2.2.
用format!连接字符串
2.3.
构造器
2.4.
Default 特性
2.5.
将集合视为智能指针
2.6.
确定性析构
2.7.
mem::{take(_), replace(_)}
2.8.
栈上动态分发
2.9.
外部语言接口
2.9.1.
常见错误处理
2.9.2.
接受字符串
2.9.3.
传递字符串
2.10.
关于 Option的迭代器
2.11.
向闭包传递变量
2.12.
留隐私,为扩展
2.13.
关于初始化的文档
2.14.
临时可变性
3.
设计模式
3.1.
命令模式
3.2.
建造者
3.3.
分解结构体
3.4.
外部语言接口使用
3.4.1.
基于对象的API
3.4.2.
类型合并封装
3.5.
Fold
3.6.
解释器
3.7.
新类型
3.8.
RAII 守卫
3.9.
偏爱更小的库
3.10.
策略模式
3.11.
将不安全置于小模块中
3.12.
访问者模式
4.
反模式
4.1.
clone过借用检查
4.2.
#[deny(warnings)]
4.3.
Deref 多态
5.
函数式编程
5.1.
编程范式
5.2.
泛型作为类型类
6.
补充材料
6.1.
设计原则
Light
Rust
Coal
Navy
Ayu
Rust设计模式
外部语言接口使用
编写FFI的代码本身就是一门学问。 不过,这有一些习惯用法可以使其像指针一样操作,并且避免缺少经验的开发者陷入
unsafe
Rust的陷阱。
这一章中包括下列能在做FFI时有用的设计模式:
基于对象API
设计模式有内存安全的特性,同时有一个安全和非安全代码的清晰边界。
类型合并到包装器
——将多个Rust类型合并到一个不透明的“对象”中。