#[derive(Default, Debug)]
pub struct Spinner {
frames: Vec<char>,
current: usize,
}
impl Spinner {
#[must_use]
pub fn new() -> Self {
Spinner {
frames: vec!['⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏'],
current: 0,
}
}
pub fn next_frame(&mut self) -> char {
let char = self.frames[self.current];
self.current = (self.current + 1) % self.frames.len();
char
}
}