https://doc.rust-jp.rs/book-ja/ch10-02-traits.html#%E3%83%88%E3%83%AC%E3%82%A4%E3%83%88%E5%A2%83%E7%95%8C%E3%82%92%E4%BD%BF%E7%94%A8%E3%81%97%E3%81%A6%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89%E5%AE%9F%E8%A3%85%E3%82%92%E6%9D%A1%E4%BB%B6%E5%88%86%E3%81%91%E3%81%99%E3%82%8B
[[トレイト境界]]を満たすあらゆる型に[[トレイト]]を実装すること。
```rust
use std::fmt::Display;
trait Dog {
fn won(&self) {
println!("won!")
}
}
// Displayトレイトを実装しているあらゆる型にDogトレイトを実装
// ...というおまじない
impl<T: Display> Dog for T {}
fn main() {
let a = String::from("hoge");
// String型はDisplayトレイトを実装しているのでwonが呼べる
a.won();
}
```
標準ライブラリだと[[Displayトレイト]]が実装されたすべての型で`to_string`を使えるのはそういうワケ。
```rust
impl<T: Display> ToString for T {
// --snip--
}
```