use rustea::crossterm::event::{KeyCode, KeyEvent, KeyModifiers}; use rustea::{command, App, Command, Message}; struct Model { last_key: Option, } impl App for Model { fn update(&mut self, msg: Message) -> Option { if let Ok(key_event) = msg.downcast::() { if let KeyModifiers::CONTROL = key_event.modifiers { match key_event.code { KeyCode::Char('c') => return Some(Box::new(command::quit)), _ => return None, } } match key_event.code { KeyCode::Char(c) => { self.last_key = Some(c); return None; } _ => unimplemented!(), } }; None } fn view(&self) -> String { format!("Hello! You pressed: {:?}", self.last_key) } } fn main() { let model = Model { last_key: None }; rustea::run(model).unwrap(); }