summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGavin Panella <gavinpanella@gmail.com>2019-05-08 23:28:19 +0200
committerPierre Peltier <dev@halium.fr>2019-05-21 12:08:10 +0200
commit016e1a0e0dc578c001cb3feb70f45c40a44a977a (patch)
treec23d191559b92d584d607e4fb765f0ccd234824d
parent75648b79b08bd52b9ef70fffdd914c9fcac8b75a (diff)
Don't call read_dir() twice on the same path.
-rw-r--r--src/meta/mod.rs14
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 {