From 016e1a0e0dc578c001cb3feb70f45c40a44a977a Mon Sep 17 00:00:00 2001 From: Gavin Panella Date: Wed, 8 May 2019 23:28:19 +0200 Subject: Don't call read_dir() twice on the same path. --- src/meta/mod.rs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/src/meta/mod.rs b/src/meta/mod.rs index 85cd348..6f77282 100644 --- a/src/meta/mod.rs +++ b/src/meta/mod.rs @@ -58,11 +58,13 @@ impl Meta { _ => return Ok(None), } - // TODO: Don't read_dir twice; see later. - if let Err(err) = self.path.read_dir() { - eprintln!("cannot access '{}': {}", self.path.display(), err); - return Ok(None); - } + let entries = match self.path.read_dir() { + Ok(entries) => entries, + Err(err) => { + eprintln!("cannot access '{}': {}", self.path.display(), err); + return Ok(None); + } + }; let mut content: Vec = Vec::new(); @@ -85,7 +87,7 @@ impl Meta { content.push(parent_meta); } - for entry in self.path.read_dir()? { + for entry in entries { let path = entry?.path(); if let Display::DisplayOnlyVisible = display { -- cgit v1.2.3