use std::time::Instant; use crossterm::{ event::{Event, KeyCode}, style::ContentStyle, }; use tortuise::buffer::{Buffer, Cell}; fn main() { let mut stdout = std::io::stdout().lock(); let mut buffer = Buffer::new(&mut stdout).unwrap(); let mut last_frame_start = Instant::now(); buffer .render_loop( |renderer, event| { if let Event::Key(event) = event && event.code == KeyCode::Esc { let _ = renderer.finish(); std::process::exit(0); } }, |renderer| { renderer.cells.clear(); let end = Instant::now(); let frame_time = (end - last_frame_start).as_micros(); let digits = [ frame_time % 1_000_000 / 100_000, frame_time % 100_000 / 10_000, frame_time % 10_000 / 1_000, frame_time % 1_000 / 100, frame_time % 100 / 10, frame_time % 10, ]; for (x, digit) in digits.into_iter().enumerate() { renderer.cells.push(Cell { character: char::from_digit(digit as u32, 10).unwrap(), x: x as u16, y: 0, z: 0, style: ContentStyle::new(), }); } last_frame_start = Instant::now(); }, ) .unwrap(); }