(layered_nodes: Vec<(usize, &str)>, depth: usize)
| 105 | } |
| 106 | |
| 107 | fn get_layer_child(layered_nodes: Vec<(usize, &str)>, depth: usize) -> Vec<TreeNode> { |
| 108 | let mut seq_each_layer = Vec::new(); |
| 109 | let mut layer_seqs = Vec::new(); |
| 110 | for (layer, node) in layered_nodes { |
| 111 | if layer == depth { |
| 112 | seq_each_layer.push(layer_seqs); |
| 113 | layer_seqs = Vec::new(); |
| 114 | } |
| 115 | layer_seqs.push((layer, node)); |
| 116 | } |
| 117 | seq_each_layer.push(layer_seqs); |
| 118 | seq_each_layer.retain(|x| !x.is_empty()); |
| 119 | |
| 120 | let mut childs = Vec::new(); |
| 121 | for seq in seq_each_layer { |
| 122 | let root = seq[0]; |
| 123 | let mut root = TreeNode::new(root.1.to_string()); |
| 124 | for child in get_layer_child(seq[1..].to_vec(), depth + 1) { |
| 125 | root.add_child(child); |
| 126 | } |
| 127 | childs.push(root); |
| 128 | } |
| 129 | childs |
| 130 | } |
| 131 | |
| 132 | fn parse_dependency_tree(output: &str, base_name: &str, header_path: &Path) -> Result<TreeNode> { |
| 133 | let mut node_layer: Vec<(usize, &str)> = Vec::new(); |
no test coverage detected