MCPcopy Create free account
hub / github.com/elftausend/graplot / layers

Method layers

src/graph.rs:81–107  ·  view source on GitHub ↗
(&self)

Source from the content-addressed store, hash-verified

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

Callers 1

runFunction · 0.80

Calls 3

count_nodes_in_layersFunction · 0.85
add_nodeMethod · 0.80
nodes_contains_depsMethod · 0.80

Tested by

no test coverage detected