1 use super::*; 2 3 impl<'graph, G: DirectedGraph> DirectedGraph for &'graph G { 4 type Node = G::Node; 5 } 6 7 impl<'graph, G: WithNumNodes> WithNumNodes for &'graph G { num_nodes(&self) -> usize8 fn num_nodes(&self) -> usize { 9 (**self).num_nodes() 10 } 11 } 12 13 impl<'graph, G: WithStartNode> WithStartNode for &'graph G { start_node(&self) -> Self::Node14 fn start_node(&self) -> Self::Node { 15 (**self).start_node() 16 } 17 } 18 19 impl<'graph, G: WithSuccessors> WithSuccessors for &'graph G { successors(&self, node: Self::Node) -> <Self as GraphSuccessors<'_>>::Iter20 fn successors(&self, node: Self::Node) -> <Self as GraphSuccessors<'_>>::Iter { 21 (**self).successors(node) 22 } 23 } 24 25 impl<'graph, G: WithPredecessors> WithPredecessors for &'graph G { predecessors(&self, node: Self::Node) -> <Self as GraphPredecessors<'_>>::Iter26 fn predecessors(&self, node: Self::Node) -> <Self as GraphPredecessors<'_>>::Iter { 27 (**self).predecessors(node) 28 } 29 } 30 31 impl<'iter, 'graph, G: WithPredecessors> GraphPredecessors<'iter> for &'graph G { 32 type Item = G::Node; 33 type Iter = <G as GraphPredecessors<'iter>>::Iter; 34 } 35 36 impl<'iter, 'graph, G: WithSuccessors> GraphSuccessors<'iter> for &'graph G { 37 type Item = G::Node; 38 type Iter = <G as GraphSuccessors<'iter>>::Iter; 39 } 40