TL;DR

Rust で、トレイト境界を満たすあらゆる型にトレイトを実装すること。標準ライブラリで広く使われている。

仕組み

impl の対象を具体的な型ではなく型パラメータ T にし、T にトレイト境界を付ける。こうすると、境界を満たす型すべてにそのトレイトが実装される。ブランケット実装は、トレイトのドキュメントの「Implementors」の節に載る。

例

標準ライブラリは、Display トレイトを実装するすべての型に ToString トレイトを実装している。

impl<T: Display> ToString for T {
    // --snip--
}

整数は Display を実装しているので、3.to_string() のように to_string メソッドを呼んで String に変換できる。

関連

出典