(output: &str, base_name: &str, header_path: &Path)
| 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(); |
| 134 | for line in output.lines() { |
| 135 | let sep = line |
| 136 | .find(' ') |
| 137 | .ok_or_else(|| eyre::eyre!("Expect an spece in line: {line}"))?; |
| 138 | let layer = sep; |
| 139 | let header = line[sep..].trim(); |
| 140 | if !header.starts_with(header_path.to_str().unwrap()) { |
| 141 | continue; |
| 142 | } |
| 143 | if header.ends_with(".h") || header.ends_with(".hpp") || header.ends_with(".hxx") { |
| 144 | node_layer.push((layer, header)); |
| 145 | } |
| 146 | } |
| 147 | let mut tree = TreeNode::new(base_name.to_owned()); |
| 148 | for child in get_layer_child(node_layer, 1) { |
| 149 | tree.add_child(child); |
| 150 | } |
| 151 | Ok(tree) |
| 152 | } |
| 153 | |
| 154 | |
| 155 | fn get_independent_headers(trees: &[TreeNode]) -> Result<Vec<&str>> { |
no test coverage detected