From f475122b7ec032417eb0c21e0b963eb388f63602 Mon Sep 17 00:00:00 2001 From: Yuya Nishihara Date: Thu, 1 Jun 2023 10:17:14 +0900 Subject: [PATCH] tree_builder: simply map Tree to backend::Tree in later pass I'll rewrite populate_trees() as a recursive function, so I want to minimize the objects to be passed to the function. --- lib/src/tree_builder.rs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/lib/src/tree_builder.rs b/lib/src/tree_builder.rs index 35e6da231..3a293a1bf 100644 --- a/lib/src/tree_builder.rs +++ b/lib/src/tree_builder.rs @@ -114,7 +114,6 @@ impl TreeBuilder { fn get_base_trees(&self) -> BTreeMap { let mut tree_cache = BTreeMap::new(); - let mut base_trees = BTreeMap::new(); let store = self.store.clone(); let mut populate_trees = |dir: &RepoPath| { @@ -122,9 +121,7 @@ impl TreeBuilder { if !tree_cache.contains_key(¤t_dir) { let tree = store.get_tree(¤t_dir, &self.base_tree_id).unwrap(); - let store_tree = tree.data().clone(); tree_cache.insert(current_dir.clone(), tree); - base_trees.insert(current_dir.clone(), store_tree); } for component in dir.components() { @@ -134,9 +131,7 @@ impl TreeBuilder { let tree = current_tree .sub_tree(component) .unwrap_or_else(|| Tree::null(self.store.clone(), next_dir.clone())); - let store_tree = tree.data().clone(); tree_cache.insert(next_dir.clone(), tree); - base_trees.insert(next_dir.clone(), store_tree); } current_dir = next_dir; } @@ -147,6 +142,9 @@ impl TreeBuilder { } } - base_trees + tree_cache + .into_iter() + .map(|(dir, tree)| (dir, tree.data().clone())) + .collect() } }