extern crate yapb;
extern crate termion;
use std::{thread, time};
use std::io::{self, Write};
use yapb::*;
fn main() {
let mut s256 = Counter256::new();
let mut s16 = Counter16::new();
let mut s8 = Spinner8::new();
let mut s4 = Spinner4::new();
let mut snake = Snake::new();
let mut bar = Bar::new();
let stdout = io::stdout();
let mut stdout = stdout.lock();
write!(stdout, "{}", termion::cursor::Save).unwrap();
for i in 0..1000 {
s4.set(i >> 2);
s8.set(i >> 1);
s16.set(i >> 2);
s256.set(i >> 1);
snake.set(i);
bar.set(i as f32 / 1000.0);
let (width, _) = termion::terminal_size().unwrap();
write!(stdout, "{}{}{} {} {} {} {} [{:width$}]",
termion::clear::AfterCursor, termion::cursor::Restore,
s4, s8, s16, s256, snake, bar, width = width as usize - 12).unwrap();
stdout.flush().unwrap();
thread::sleep(time::Duration::from_millis(50));
}
}