use bouncinamation::app::{App, AppResult}; use bouncinamation::event::{Event, EventHandler}; use bouncinamation::handler::handle_key_events; use bouncinamation::tui::Tui; use std::io; use tui::backend::CrosstermBackend; use tui::Terminal; fn main() -> AppResult<()> { let mut app = App::new(); let backend = CrosstermBackend::new(io::stderr()); let terminal = Terminal::new(backend)?; let term_size = terminal.size().unwrap(); let events = EventHandler::new(250); let mut tui = Tui::new(terminal, events); tui.init()?; while app.running { tui.draw(&mut app)?; match tui.events.next()? { Event::Tick => app.tick(term_size), Event::Key(key_event) => handle_key_events(key_event, &mut app)?, Event::Mouse(_) => {} Event::Resize(_, _) => {} } } tui.exit()?; Ok(()) }