[[Rustの外部トレイトは外部の型には実装できない]]という制約があるが、[[ニュータイプパターン]]を使用してこれを回避する。
```rust
use std::fmt::{Display, Formatter};
// WStringでStringをラップ
struct WString(String);
// WString
impl Display for WString {
fn fmt(&self, f: &mut Formatter<'_>) -> std::fmt::Result {
write!(f, "{}", self.0)
}
}
fn main() {
println!("{}", WString("hoge".to_string()));
}
```
[[Rustの外部トレイトは内部の型に実装できる]]。よって、[[外部トレイト]]である[[Displayトレイト]]は、内部の型である`WString`に実装できる。