トレイトを別の構造体の中に格納する場合、興味深い問題が発生します。 トレイトは元の構造体を難読化するため、元のサイズも難読化されます。 Rustでは、構造体に格納されるサイズの合わない値は、2つの方法で処理されます。
generics
- パラメータ化された型を使用して、既知の型、つまり既知のサイズの構造体/関数を効果的に作成します。indirection
- ヒープ上にインスタンスを置くことで、実際の型のサイズを気にすることなく、単にそのポインタを格納することができるインダイレクトのレベルを得ることができます。 他の方法もあります。