]> git.lizzy.rs Git - rust.git/blob - src/librustc_data_structures/graph/reference.rs
Rollup merge of #68504 - tmiasko:check-pass, r=alexcrichton
[rust.git] / src / librustc_data_structures / graph / reference.rs
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 {
8     fn num_nodes(&self) -> usize {
9         (**self).num_nodes()
10     }
11 }
12
13 impl<'graph, G: WithStartNode> WithStartNode for &'graph G {
14     fn start_node(&self) -> Self::Node {
15         (**self).start_node()
16     }
17 }
18
19 impl<'graph, G: WithSuccessors> WithSuccessors for &'graph G {
20     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 {
26     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 }