※Rustのバージョンは1.33.0 (stable)を使用しています。 Rustは所有権やライフタイム関連で詰まることが多い印象がありますが、私は同じくらい「型の指定方法」、特に「ジェネリクスでの型指定やトレイト境界指定」周りで詰まることが多いと感じています。 これは、Rustが特別複雑なことをしているわけではなく、網羅的なドキュメントや実例の載った解説が少ないためだと思います。最近は公式ドキュメントも充実してきましたが、それでも「これってどう書くの?」「そもそも出来るの?」という時になかなか情報が見つからないことが多々あります。(主に私の英語力が問題ということもありますが) そこで、私の理解している範囲で、詰まりやすそうな部分とその周辺をまとめたいと思います。 ※ジェネリクスやトレイトの導入部分は省略しています。the bookの該当部分に丁寧に書かれているので、そちらをお勧めします。