use minui::{App, Event};
use std::time::Duration;
struct MyCoolApp {
x: u16,
y: u16,
}
fn main() -> minui::Result<()> {
let initial_state = MyCoolApp { x: 5, y: 5 };
let mut app = App::new(initial_state)?.with_tick_rate(Duration::from_millis(100));
app.run(
|state, event| {
match event {
Event::Character('q') => return false,
Event::KeyUp => state.y = state.y.saturating_sub(1),
Event::KeyDown => state.y += 1,
Event::KeyLeft => state.x = state.x.saturating_sub(1),
Event::KeyRight => state.x += 1,
Event::Tick => {
state.x += 1;
}
_ => {}
}
true
},
|state, window| {
window.write_str(state.y, state.x, "@")?;
window.write_str(0, 0, "Press 'q' to quit")?;
Ok(())
},
)?;
Ok(())
}