use indicatif::{ProgressBar, ProgressStyle};
use std::time::Duration;
pub fn spinner(message: &str) -> ProgressBar {
let pb = ProgressBar::new_spinner();
pb.set_style(
ProgressStyle::default_spinner()
.tick_strings(&[".", "..", "...", "....", ".....", "......"])
.template("{spinner:.cyan} {msg}")
.unwrap(),
);
pb.set_message(message.to_string());
pb.enable_steady_tick(Duration::from_millis(80));
pb
}
pub struct Spinner {
pb: ProgressBar,
}
impl Spinner {
pub fn new(message: &str) -> Self {
Self {
pb: spinner(message),
}
}
pub fn finish(&self) {
self.pb.finish_and_clear();
}
}