diff options
author | andy.boot <bootandy@gmail.com> | 2023-01-29 10:08:53 +0000 |
---|---|---|
committer | andy.boot <bootandy@gmail.com> | 2023-02-04 11:20:50 +0000 |
commit | 5a3e15d0ce90bdc849b3570e6a61c3515f8a1e8e (patch) | |
tree | 97d03acc0982664ffc067bf1d44c9270e57a5b45 | |
parent | 6db013a601d57fb671b85cff3ad355e460e66bee (diff) |
refactor: simplify filter.rs
-rw-r--r-- | src/filter.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/filter.rs b/src/filter.rs index 740b549..66b08db 100644 --- a/src/filter.rs +++ b/src/filter.rs @@ -39,14 +39,14 @@ pub fn get_biggest(top_level_nodes: Vec<Node>, display_data: AggregateData) -> O heap = add_children(&display_data, &root, heap); } - fill_remaining_lines(heap, &root, display_data) + Some(fill_remaining_lines(heap, &root, display_data)) } pub fn fill_remaining_lines<'a>( mut heap: BinaryHeap<&'a Node>, root: &'a Node, display_data: AggregateData, -) -> Option<DisplayNode> { +) -> DisplayNode { let mut allowed_nodes = HashMap::new(); while allowed_nodes.len() < display_data.number_of_lines { @@ -109,19 +109,19 @@ fn always_add_children<'a>( fn recursive_rebuilder( allowed_nodes: &HashMap<&Path, &Node>, current: &Node, -) -> Option<DisplayNode> { +) -> DisplayNode { let new_children: Vec<_> = current .children .iter() .filter(|c| allowed_nodes.contains_key(c.name.as_path())) - .filter_map(|c| recursive_rebuilder(allowed_nodes, c)) + .map(|c| recursive_rebuilder(allowed_nodes, c)) .collect(); - Some(build_node(new_children, current)) + build_node(new_children, current) } // Applies all allowed nodes as children to current node -fn flat_rebuilder(allowed_nodes: HashMap<&Path, &Node>, current: &Node) -> Option<DisplayNode> { +fn flat_rebuilder(allowed_nodes: HashMap<&Path, &Node>, current: &Node) -> DisplayNode { let new_children: Vec<DisplayNode> = allowed_nodes .into_values() .map(|v| DisplayNode { @@ -130,7 +130,7 @@ fn flat_rebuilder(allowed_nodes: HashMap<&Path, &Node>, current: &Node) -> Optio children: vec![], }) .collect::<Vec<DisplayNode>>(); - Some(build_node(new_children, current)) + build_node(new_children, current) } fn build_node(mut new_children: Vec<DisplayNode>, current: &Node) -> DisplayNode { |