38 lines
907 B
Rust
38 lines
907 B
Rust
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(())
|
|
}
|