local_working_copy: remove unneeded boxing of diff stream

This commit is contained in:
Yuya Nishihara 2024-12-02 15:31:59 +09:00
parent 05fc855185
commit 8f55680787

View file

@ -1545,20 +1545,18 @@ impl TreeState {
}; };
let mut changed_file_states = Vec::new(); let mut changed_file_states = Vec::new();
let mut deleted_files = HashSet::new(); let mut deleted_files = HashSet::new();
let mut diff_stream = Box::pin( let mut diff_stream = old_tree
old_tree .diff_stream(new_tree, matcher)
.diff_stream(new_tree, matcher) .map(|TreeDiffEntry { path, values }| async {
.map(|TreeDiffEntry { path, values }| async { match values {
match values { Ok((before, after)) => {
Ok((before, after)) => { let result = materialize_tree_value(&self.store, &path, after).await;
let result = materialize_tree_value(&self.store, &path, after).await; (path, result.map(|value| (before, value)))
(path, result.map(|value| (before, value)))
}
Err(err) => (path, Err(err)),
} }
}) Err(err) => (path, Err(err)),
.buffered(self.store.concurrency().max(1)), }
); })
.buffered(self.store.concurrency().max(1));
while let Some((path, data)) = diff_stream.next().await { while let Some((path, data)) = diff_stream.next().await {
let (before, after) = data?; let (before, after) = data?;
if after.is_absent() { if after.is_absent() {