From 47b2fc4a872212ddc30ddd54efbd9a71a8faa3de Mon Sep 17 00:00:00 2001 From: sreedevk Date: Sun, 13 Jul 2025 14:24:24 +0000 Subject: [PATCH] move max path size update to a later stage in the pipeline for accurate results --- src/interactive.rs | 1 + src/processor.rs | 12 +++++++----- src/server.rs | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/interactive.rs b/src/interactive.rs index 2d4f87e..d8dfd9f 100644 --- a/src/interactive.rs +++ b/src/interactive.rs @@ -16,6 +16,7 @@ impl Interactive { let mut itable = Table::new(); itable.set_format(*format::consts::FORMAT_NO_BORDER_LINE_SEPARATOR); itable.set_titles(row!["index", "filename", "size", "updated_at"]); + let max_path_size = group .iter() .map(|f| f.path.iter().count()) diff --git a/src/processor.rs b/src/processor.rs index 0dfde80..ba0ef86 100644 --- a/src/processor.rs +++ b/src/processor.rs @@ -20,6 +20,7 @@ impl Processor { sw_store: Arc>>, hw_store: Arc>>, progress_bar_box: Arc, + max_file_size: Arc, ) -> Result<()> { let progress_bar = match app_args.progress { true => progress_bar_box.add(ProgressBar::new_spinner()), @@ -48,6 +49,12 @@ impl Processor { file.initial_page_hash().expect("hashing file failed.") }; + Self::compare_and_update_max_path_len( + max_file_size.clone(), + file.path.to_string_lossy().len() as u64, + ) + .unwrap(); + hw_store .entry(fhash) .and_modify(|fileset| fileset.push(file.clone())) @@ -72,7 +79,6 @@ impl Processor { scanner_finished: Arc, store: Arc>>, files: Arc>>, - max_file_size: Arc, progress_bar_box: Arc, ) -> Result<()> { let progress_bar = match app_args.progress { @@ -97,10 +103,6 @@ impl Processor { match fileopt { Some(file) => { progress_bar.inc(1); - Self::compare_and_update_max_path_len( - max_file_size.clone(), - file.path.to_string_lossy().len() as u64, - )?; store .entry(file.size) .and_modify(|fileset| fileset.push(file.clone())) diff --git a/src/server.rs b/src/server.rs index 989786d..49301a9 100644 --- a/src/server.rs +++ b/src/server.rs @@ -72,7 +72,6 @@ impl Server { sfin_pr_tr_cl, store_dupl_sw_for_sw, file_queue_clone_pr, - max_file_path_len_clone, progbarbox_pr_clone.clone(), ) .unwrap(); @@ -82,6 +81,7 @@ impl Server { store_dupl_sw_for_hw, store_dupl_hw, progbarbox_pr_clone, + max_file_path_len_clone, ) .unwrap(); });