pub trait VertexTypes<'a, G: WithVertex> {
type VertexIter: Iterator<Item = Vertex<G>>;
type OutNeighborIter: Iterator<Item = Vertex<G>>;
}
impl<'a, 'b, G> VertexTypes<'a, Subgraph<'b, G>> for Subgraph<'b, G> where
G: 'b + Graph, type VertexIter = Cloned<Iter<'a, Vertex<G>>>; type OutNeighborIter = OutNeighborFromOutEdge<'b, G, OutEdgeIter<'a, Self>>;
impl<'a, 'b, G> VertexTypes<'a, SpanningSubgraph<'b, G>> for SpanningSubgraph<'b, G> where
G: 'b + WithEdge + WithVertexProp<Vec<Edge<G>>>, type VertexIter = VertexIter<'b, G>; type OutNeighborIter = OutNeighborFromOutEdge<'b, G, OutEdgeIter<'a, Self>>;
impl<'a, V, K> VertexTypes<'a, AdjSet<V, K>> for AdjSet<V, K> where
V: AdjSetVertex,
K: AdjSetEdgeKind<V>, type VertexIter = Cloned<Keys<'a, V, HashSet<V>>>; type OutNeighborIter = Cloned<Iter<'a, V>>;
impl<'a, K: CompleteEdgeKind> VertexTypes<'a, Complete<K>> for Complete<K> type VertexIter = Range<Vertex<Self>>; type OutNeighborIter = Chain<Range<CVertex>, Range<CVertex>>;
impl<'a, V: Num, K: StaticEdgeKind> VertexTypes<'a, Static<V, K>> for Static<V, K> type VertexIter = V::Range; type OutNeighborIter = OutNeighborFromOutEdge<'a, Self, OutEdgeIter<'a, Self>>;