pub trait ToExtras<E: Extras<Self::Input>> { type Input; fn to_extras(&self) -> E; fn into_extras(self) -> E where Self: Sized, { ... } }