use crate::constants::SPINNER_CHARS;
use indicatif::{ProgressBar, ProgressStyle};
pub fn create_progress_spinner() -> ProgressBar {
let spinner = ProgressBar::new_spinner();
spinner.set_style(
ProgressStyle::default_spinner()
.template("{spinner:.cyan} {msg}")
.unwrap()
.tick_strings(SPINNER_CHARS),
);
spinner
}
pub fn create_progress_bar(total: u64) -> ProgressBar {
let pb = ProgressBar::new(total);
pb.set_style(
ProgressStyle::default_bar()
.template("{spinner:.cyan} [{bar:40.cyan/blue}] {pos}/{len} {msg}")
.unwrap()
.progress_chars("█▓░"),
);
pb
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_create_progress_spinner() {
let spinner = create_progress_spinner();
spinner.set_message("Test message");
spinner.finish_and_clear();
}
#[test]
fn test_create_progress_bar() {
let pb = create_progress_bar(100);
pb.set_position(50);
pb.finish();
}
}