tensor_eigen/
spinner.rs

1use indicatif::{ProgressBar, ProgressStyle};
2
3pub fn create_spinner(msg: &str) -> Result<ProgressBar, indicatif::style::TemplateError> {
4    let spinner = ProgressBar::new_spinner();
5    spinner.set_style(
6        indicatif::ProgressStyle::default_spinner()
7            .tick_chars("⠁⠂⠄⡀⢀⠠⠐⠈")
8            .template("{spinner:.green} {msg}")?,
9    );
10    spinner.enable_steady_tick(std::time::Duration::from_millis(100));
11    spinner.set_message(msg.to_string());
12    Ok(spinner)
13}
14
15pub fn pb_with_len(msg: &str, len: u64) -> Result<ProgressBar, indicatif::style::TemplateError> {
16    let pb = ProgressBar::new(len);
17    pb.set_style(
18        ProgressStyle::default_bar()
19            .template("{spinner:.green} [{bar:40.cyan/blue}] {pos}/{len} {msg}")?
20            .progress_chars("#>-"),
21    );
22    pb.set_message(msg.to_string());
23
24    Ok(pb)
25}