pub trait Generate<Item: ?Sized> { type Forward; // Required method fn generate(&mut self, item: &Item) -> Self::Forward; }