Контрольный список шаблонов проектирования HAL
- Именование (крейт соответствует соглашениям об именовании в Rust)
- Крейт назван правильно (C-CRATE-NAME)
- Взаимодействие (крейт хорошо взаимодействует с функциональностью других библиотек)
- Типы-обертки предоставляют метод деструктора (C-FREE)
- HAL переэкспортируют свой крейт доступа к регистрам (C-REEXPORT-PAC)
-
Типы реализуют трейты
embedded-hal(C-HAL-TRAITS)
- Предсказуемость (крейт позволяет писать читаемый код, который работает так, как выглядит)
- Используются конструкторы вместо трейтов расширения (C-CTOR)
- Интерфейсы GPIO (Интерфейсы GPIO следуют общему шаблону)
- Типы пинов по умолчанию нулевого размера (C-ZST-PIN)
- Типы пинов предоставляют методы для стирания пина и порта (C-ERASED-PIN)
- Состояние пина должно быть закодировано как параметры типа (C-PIN-STATE)