From 34d17e613df49f3c09490b16c7c778724682c90c Mon Sep 17 00:00:00 2001 From: Thomas Hurst Date: Thu, 13 Sep 2018 00:23:49 +0100 Subject: [PATCH] Make get_all_orphan_pages more idiomatic --- components/site/src/lib.rs | 21 ++++++++------------- 1 file changed, 8 insertions(+), 13 deletions(-) diff --git a/components/site/src/lib.rs b/components/site/src/lib.rs index f5a72a4a..ba70aef9 100644 --- a/components/site/src/lib.rs +++ b/components/site/src/lib.rs @@ -149,20 +149,15 @@ impl Site { /// Get all the orphan (== without section) pages in the site pub fn get_all_orphan_pages(&self) -> Vec<&Page> { - let mut pages_in_sections = HashSet::new(); - let mut orphans = vec![]; + let pages_in_sections = self.sections + .values() + .flat_map(|s| s.all_pages_path()) + .collect::>(); - for s in self.sections.values() { - pages_in_sections.extend(s.all_pages_path()); - } - - for page in self.pages.values() { - if !pages_in_sections.contains(&page.file.path) { - orphans.push(page); - } - } - - orphans + self.pages + .values() + .filter(|page| !pages_in_sections.contains(&page.file.path)) + .collect() } pub fn set_base_url(&mut self, base_url: String) {