From 3b5d0d04c3c22516269e3a591c139d5b99d0da74 Mon Sep 17 00:00:00 2001 From: Ginger Chody Date: Sat, 10 Aug 2024 00:55:26 -0700 Subject: [PATCH] Speed up manifest comparison Don't iterate files for each other mod, keep the list around for future iterations --- crates/uk-manager/src/mods.rs | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crates/uk-manager/src/mods.rs b/crates/uk-manager/src/mods.rs index b833e492..dc44967f 100644 --- a/crates/uk-manager/src/mods.rs +++ b/crates/uk-manager/src/mods.rs @@ -315,14 +315,15 @@ impl Manager { &'a self, ref_manifest: &'m Manifest, ) -> impl Iterator + 'm { - self.mods().filter(|mod_| { + let ref_languages = ref_manifest.languages(); + self.mods().filter(move |mod_| { match mod_.manifest() { Ok(manifest) => { let languages = manifest.languages(); !ref_manifest.content_files.is_disjoint(&manifest.content_files) || !ref_manifest.aoc_files.is_disjoint(&manifest.aoc_files) || ( - ref_manifest.languages() + ref_languages .iter() .any(|l| languages.contains(l)) )