静的保証
Rust の型システムは、コンパイル時にデータ競合を防ぎます(Send
および Sync トレイトを参照)。型システムは、コンパイル時にそのほかの性質を
検査するためにも利用でき、その結果、場合によっては実行時チェックの必要性を
減らせます。
これらの 静的チェック を組み込みプログラムに適用すると、たとえば I/O インターフェイスの設定が適切に行われることを強制できます。たとえば、 まずそのインターフェイスで使用するピンを設定しなければ、シリアル インターフェイスを初期化できないような API を設計できます。
また、ピンを low に設定するといった操作が、正しく設定された ペリフェラルに対してのみ実行できることも、静的に検査できます。たとえば、 フローティング入力モードに設定されたピンの出力状態を変更しようとすると、 コンパイルエラーになります。
また、前章で見たように、所有権の概念をペリフェラルに適用することで、 プログラムの特定の部分だけがペリフェラルを変更できるようにできます。 この アクセス制御 により、ペリフェラルをグローバルな可変状態として扱う 代替案と比べて、ソフトウェアについて推論しやすくなります。