(&self)
| 79 | } |
| 80 | |
| 81 | pub fn layers(&self) -> Vec<Layer> { |
| 82 | let mut layers = vec![Layer::new(0)]; |
| 83 | |
| 84 | for node in &self.nodes { |
| 85 | if node.deps.is_empty() { |
| 86 | layers[0].add_node(node) |
| 87 | } |
| 88 | } |
| 89 | |
| 90 | while count_nodes_in_layers(&layers) < self.nodes.len() { |
| 91 | let mut next_layer = Layer::new(layers.len()); |
| 92 | for node in &self.nodes { |
| 93 | if node.deps.is_empty() { |
| 94 | continue; |
| 95 | } |
| 96 | |
| 97 | for layer_node in &layers[layers.len() -1].nodes { |
| 98 | if node.deps.contains(&layer_node.idx) && !next_layer.nodes_contains_deps(&node.deps) { |
| 99 | next_layer.add_node(node); |
| 100 | break; |
| 101 | } |
| 102 | } |
| 103 | } |
| 104 | layers.push(next_layer); |
| 105 | } |
| 106 | layers |
| 107 | } |
| 108 | |
| 109 | pub fn show(self) { |
| 110 |
no test coverage detected