HAL设计检查清单
- 命名 (crate要符合Rust命名规则)
- [ ] crate被恰当地命名 ([C-CRATE-NAME])
- 互用性 (crate要很好地与其它的库功能交互)
- [ ] 封装类型提供一种析构方法 ([C-FREE])
- [ ] HALs重新导出了它们的寄存器访问crate ([C-REEXPORT-PAC])
- [ ] 类型实现了
embedded-haltraits ([C-HAL-TRAITS])
- 可预见性 (crate的代码清晰可读,行为和看起来的一样)
- [ ] 使用构造函数而不是扩展traits ([C-CTOR])
- GPIO接口 (GPIO接口要遵循一个公共的模式)
- [ ] Pin类型默认是零大小类型 ([C-ZST-PIN])
- [ ] Pin类型提供擦除管脚和端口的方法 ([C-ERASED-PIN])
- [ ] Pin状态应该被编码为类型参数 ([C-PIN-STATE])