pub trait WikiGenerator {
type Item: 'static;
type Response: DeserializeOwned;
// Required methods
fn url(&self) -> &Url;
fn client(&self) -> &Client;
fn create_request(&self) -> Main;
fn untangle_response(&self, res: Self::Response) -> Result<Vec<Self::Item>>;
// Provided method
fn into_stream(self) -> GeneratorStream<Self>
where Self: Sized { ... }
}