健全な Rust の 3 つの形
- Safe Rust のみで書かれた関数
- 誤用が不可能な
unsafeブロックを含む関数 - 安全性の事前条件が文書化された unsafe 関数
- 私たちは健全なコードを書きたいと考えています。
- 健全なコードが取りうる形は、次のものだけです。
unsafeブロックを含まない安全な関数unsafeブロックを完全にカプセル化する安全な関数。つまり、呼び出し元がそれらについて知っている必要がないものunsafeブロックを含むものの、それらをカプセル化せず、証明の責任を呼び出し元に渡す unsafe 関数
- 証明責任
- Safe Rust のみからなる安全な関数 -> コンパイラ
unsafeブロックを含む安全な関数 -> 関数の作者- unsafe 関数 -> 関数の呼び出し元