parcopy/progress.rs
1//! Progress reporting support (requires `progress` feature)
2
3use indicatif::{ProgressBar, ProgressStyle};
4
5/// Callback for progress updates
6pub type ProgressCallback = Box<dyn Fn(u64, u64) + Send + Sync>;
7
8/// Create a default progress bar for file copying
9#[must_use]
10pub fn create_progress_bar(total: u64) -> ProgressBar {
11 let pb = ProgressBar::new(total);
12 pb.set_style(
13 ProgressStyle::default_bar()
14 .template("{spinner:.green} [{bar:40.cyan/blue}] {pos}/{len} files ({eta})")
15 .unwrap_or_else(|_| ProgressStyle::default_bar())
16 .progress_chars("=>-"),
17 );
18 pb
19}