From 903d8a1c87a79646ca724de6a7e5d1776c4333db Mon Sep 17 00:00:00 2001 From: sharkdp Date: Thu, 1 Nov 2018 19:20:57 +0100 Subject: Remove usage of unwrap --- src/main.rs | 38 ++++++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 14 deletions(-) diff --git a/src/main.rs b/src/main.rs index 62fd088..76f0ccd 100644 --- a/src/main.rs +++ b/src/main.rs @@ -49,21 +49,31 @@ fn main() { walker.run(|| { let tx = tx.clone(); Box::new(move |result| { - if let Ok(entry) = result { - let metadata = entry.metadata().unwrap(); + match result { + Ok(entry) => { + if let Ok(metadata) = entry.metadata() { + // If the entry has more than one hard link, generate + // a unique ID consisting of device and inode in order + // not to count this entry twice. + let unique_id = if metadata.is_file() && metadata.nlink() > 1 { + Some((metadata.dev(), metadata.ino())) + } else { + None + }; - // If the entry has more than one hard link, generate - // a unique ID consisting of device and inode in order - // not to count this entry twice. - let unique_id = if metadata.is_file() && metadata.nlink() > 1 { - Some((metadata.dev(), metadata.ino())) - } else { - None - }; + let size = metadata.len(); - let size = metadata.len(); - - tx.send((unique_id, size)).unwrap(); + tx.send((unique_id, size)).ok(); + } else { + eprintln!( + "Could not get metadata: '{}'", + entry.path().to_string_lossy() + ); + } + } + Err(err) => { + eprintln!("I/O error: {}", err); + } } return ignore::WalkState::Continue; @@ -71,5 +81,5 @@ fn main() { }); drop(tx); - receiver_thread.join().unwrap(); + receiver_thread.join().ok(); } -- cgit v1.2.3