pub trait Flatten<I, B, M> {
// Required methods
fn flatten_with<V, G: Generator<V, M>>(
self,
vocabulary: &mut V,
generator: G,
ordered: bool
) -> FlattenResult<I, B, M>
where V: Vocabulary<Iri = I, BlankId = B>;
fn flatten_unordered_with<V, G: Generator<V, M>>(
self,
vocabulary: &mut V,
generator: G
) -> FlattenUnorderedResult<I, B, M>
where V: Vocabulary<Iri = I, BlankId = B>;
// Provided methods
fn flatten<G: Generator<(), M>>(
self,
generator: G,
ordered: bool
) -> FlattenResult<I, B, M>
where (): Vocabulary<Iri = I, BlankId = B>,
Self: Sized { ... }
fn flatten_unordered<G: Generator<(), M>>(
self,
generator: G
) -> FlattenUnorderedResult<I, B, M>
where (): Vocabulary<Iri = I, BlankId = B>,
Self: Sized { ... }
}