use std::io; use ratatui::{backend::CrosstermBackend, prelude::*}; use altoku::{ app::{App, AppResult}, event::{Event, EventHandler}, handler::handle_key_events, tui::Tui, }; #[tokio::main] async fn main() -> AppResult<()> { let mut app = App::new(); let backend = CrosstermBackend::new(io::stderr()); let terminal = Terminal::new(backend)?; let events = EventHandler::new(250); let mut tui = Tui::new(terminal, events); tui.init()?; // Start the main loop. while app.running { // Render the user interface. tui.draw(&mut app)?; // Handle events. match tui.events.next().await? { Event::Tick => app.tick(), Event::Key(key_event) => handle_key_events(key_event, &mut app).await?, Event::Mouse(_) => {} Event::Resize(_, _) => {} } } tui.exit()?; Ok(()) }