Rustは各型で共通事項をあらかじめ宣言する必要がなく
共通する構造&機能の決定を実際に使用する時まで遅らせて
それらが決まってから後から実装すればよいため
設計の自由度が高いね