静的な保証

コンパイル時にデータ競合を防ぐのは、Rustの型システムです(SendSyncトレイトを参照)。 この型システムは、コンパイル時に他のプロパティをチェックするためにも使用できます。 その結果、実行時チェックの必要性を減らせる場合があります。

組込みプログラムに適用する場合、これらの静的なチェックは、例えば、入出力インタフェースが正しく設定されていることを強制することができます。 例えば、使用されるピンを最初に設定することによってのみ、シリアルインタフェースを初期化できるようなAPI設計が可能です。

正しく設定されたペリフェラルでのみ、ピンをローレベルにするというような操作ができることを、 静的にチェックすることも可能です。例えば、フローティング入力モードに設定されたピンの出力状態を変更しようとすると、 コンパイルエラーが発生します。

訳注:フローティング入力モードは、ピンをハイインピーダンスの入力モードにしていることを意味しています。

以前の章で見た通り、所有権の概念はペリフェラルにも適用できます。所有権は、プログラムの特定部分のみがペリフェラルを変更することを保証します。 このアクセスコントロールは、ペリフェラルをグローバルでミュータブルな状態として扱う代替案と比較して、 ソフトウェアの解析をより簡単にします。