Skip to main content

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}