この記事は、Rust Advent Calendar 2020の11日目の記事です。昨日は@tasshiさんによる、公開APIのインターフェースで利用している外部クレートはRe-exportする(と良さそう) でした。 この記事では、Rustの型システムがなぜ素晴らしいかということを、多分他の人はあまりしていなかったであろう変わった観点から考えてます。まず、Rustの型システムについて非常に簡単におさらいをした上で、 iterator invalidation match-guardのmutable reference という2つの例から、Rustの型システムのおかげで、処理系が効率性を維持しつつ安全性を担保することができる様子を眺めます。 Rustの型システムにより得られるinvariant 簡単にRustがどういうシステムを与えているのかを紹介します。ご存知の方も多いと思うのでスキップ