diff options
author | Sebastian Thiel <sebastian.thiel@icloud.com> | 2021-05-30 16:32:46 +0800 |
---|---|---|
committer | Sebastian Thiel <sebastian.thiel@icloud.com> | 2021-05-30 16:32:46 +0800 |
commit | d381c6caed1fd404d7a11c1f581abdba749b7a20 (patch) | |
tree | 77e34387f3aefc2641cacbc067fdc256383361dc | |
parent | ffdb0c270f9c07a3518e2335ee77d7788bfc7793 (diff) |
Only fetch metadata for files for a speedup
-rw-r--r-- | src/aggregate.rs | 2 | ||||
-rw-r--r-- | src/common.rs | 4 | ||||
-rw-r--r-- | src/traverse.rs | 2 |
3 files changed, 5 insertions, 3 deletions
diff --git a/src/aggregate.rs b/src/aggregate.rs index 6a31445..3d3ac2d 100644 --- a/src/aggregate.rs +++ b/src/aggregate.rs @@ -84,7 +84,7 @@ pub fn aggregate( num_errors += 1; 0 } - None => unreachable!("must have populated client state for metadata"), + None => 0, // ignore directory } as u128; stats.largest_file_in_bytes = stats.largest_file_in_bytes.max(file_size); stats.smallest_file_in_bytes = stats.smallest_file_in_bytes.min(file_size); diff --git a/src/common.rs b/src/common.rs index e214f93..841e7e4 100644 --- a/src/common.rs +++ b/src/common.rs @@ -139,7 +139,9 @@ impl WalkOptions { .process_read_dir(|_, _, _, dir_entry_results| { dir_entry_results.iter_mut().for_each(|dir_entry_result| { if let Ok(dir_entry) = dir_entry_result { - dir_entry.client_state = Some(dir_entry.metadata()); + if dir_entry.file_type.is_file() { + dir_entry.client_state = Some(dir_entry.metadata()); + } } }) }) diff --git a/src/traverse.rs b/src/traverse.rs index 282c87f..7cdaf7f 100644 --- a/src/traverse.rs +++ b/src/traverse.rs @@ -135,7 +135,7 @@ impl Traversal { data.metadata_io_error = true; 0 } - None => unreachable!("must have populated client state for metadata"), + None => 0, // a directory } as u128; match (entry.depth, previous_depth) { |