3 формы корректного Rust
- Функции, написанные только на безопасном Rust
- Функции, содержащие небезопасные блоки, которые невозможно использовать неправильно
- Небезопасные функции, предусловия безопасности которых задокументированы
This slide should take about 5 minutes.
- Мы хотим писать корректный код.
- Корректный код может иметь только следующие формы:
- безопасные функции, не содержащие небезопасных блоков
- безопасные функции, полностью инкапсулирующие небезопасные блоки, то есть вызывающему коду не нужно о них знать
- небезопасные функции, которые содержат небезопасные блоки, но не инкапсулируют их и перекладывают бремя доказательства на вызывающий код
- Бремя доказательства
- безопасные функции только на безопасном Rust → компилятор
- безопасные функции с небезопасными блоками → автор функции
- небезопасные функции → вызывающий код функции