diff options
author | Gavin Panella <gavinpanella@gmail.com> | 2019-05-08 23:28:19 +0200 |
---|---|---|
committer | Pierre Peltier <dev@halium.fr> | 2019-05-21 12:08:10 +0200 |
commit | 016e1a0e0dc578c001cb3feb70f45c40a44a977a (patch) | |
tree | c23d191559b92d584d607e4fb765f0ccd234824d | |
parent | 75648b79b08bd52b9ef70fffdd914c9fcac8b75a (diff) |
Don't call read_dir() twice on the same path.
-rw-r--r-- | src/meta/mod.rs | 14 |
1 files 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<Meta> = 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 { |