tensor_eigen/
spinner.rs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
use indicatif::{ProgressBar, ProgressStyle};

pub fn spinner(msg: &str) -> Result<ProgressBar, indicatif::style::TemplateError> {
    let spinner = ProgressBar::new_spinner();
    spinner.set_style(
        indicatif::ProgressStyle::default_spinner()
            .tick_chars("⠁⠂⠄⡀⢀⠠⠐⠈")
            .template("{spinner:.green} {msg}")?,
    );
    spinner.enable_steady_tick(std::time::Duration::from_millis(100));
    spinner.set_message(msg.to_string());
    Ok(spinner)
}

pub fn pb_with_len(msg: &str, len: u64) -> Result<ProgressBar, indicatif::style::TemplateError> {
    let pb = ProgressBar::new(len);
    pb.set_style(
        ProgressStyle::default_bar()
            .template("{spinner:.green} [{bar:40.cyan/blue}] {pos}/{len} {msg}")?
            .progress_chars("#>-"),
    );
    pb.set_message(msg.to_string());

    Ok(pb)
}