>>354
Rustならばラップは必要なく、トレイト宣言をしてトレイト側へメソッドを移動するだけで簡単に済む
impl Foo {
 fn method(&self, ...
}
impl Bar {
 fn method(&self, ...
}
と複数の型に共通メソッドがあり、それをトレイトで共通に扱えるようにしたければ

// トレイト宣言
trait TraitName {
 fn method(&self, ...
}
// トレイト実装
impl TraitName for Foo {
 fn method(&self, ...
}
impl TraitName for Bar {
 fn method(&self, ...
}
つまり「impl Foo」から
「impl TraitName for Foo」へ移すだけで済む
今回の例なら差分タイプ量は「TraitName for」のみ