Avoid unnecessary cloning in insert_many

This commit is contained in:
sxyazi 2024-02-18 00:38:10 +08:00
parent 76711cb9a9
commit d9f5752641
No known key found for this signature in database

View file

@ -18,23 +18,22 @@ impl Selected {
return true; return true;
} }
let mut current_path = urls[0].clone(); let mut parent = urls[0].parent_url();
while let Some(parent) = current_path.parent_url() { while let Some(u) = parent {
if self.inner.contains(&parent) { if self.inner.contains(&u) {
return false; return false;
} }
current_path = parent; parent = u.parent_url();
} }
if self.parents.contains_key(urls[0]) { if self.parents.contains_key(urls[0]) {
return false; return false;
} }
let mut current_path = urls[0].clone(); let mut parent = urls[0].parent_url();
let len_of_urls = urls.len(); while let Some(u) = parent {
while let Some(parent) = current_path.parent_url() { parent = u.parent_url();
current_path = parent; *self.parents.entry(u).or_insert(0) += urls.len();
*self.parents.entry(current_path.clone()).or_insert(0) += len_of_urls;
} }
self.inner.extend(urls.iter().cloned().cloned()); self.inner.extend(urls.iter().cloned().cloned());