tui: named and displayable events
Some checks failed
/ build (push) Has been cancelled

This commit is contained in:
facile pop culture reference 2026-10-01 15:28:58 +03:00
parent 0a868c9e6c
commit ab8c8cb1c4

View file

@ -7,14 +7,34 @@ pub struct TuiEvent(
pub Event pub Event
); );
impl_from!(TuiEvent: |e: Event| TuiEvent( impl_from!(TuiEvent: |e: Event|
e)); TuiEvent(e));
impl_from!(TuiEvent: |e: KeyEvent| TuiEvent( impl_from!(TuiEvent: |e: KeyEvent|
Event::Key(e))); TuiEvent(Event::Key(e)));
impl_from!(TuiEvent: |c: KeyCode| TuiEvent( impl_from!(TuiEvent: |c: KeyCode|
Event::Key(KeyEvent::new(c, KeyModifiers::NONE)))); TuiEvent(Event::Key(KeyEvent::new(c, KeyModifiers::NONE))));
impl_from!(TuiEvent: |c: char| TuiEvent( impl_from!(TuiEvent: |c: char|
Event::Key(KeyEvent::new(KeyCode::Char(c), KeyModifiers::NONE)))); TuiEvent(Event::Key(KeyEvent::new(KeyCode::Char(c), KeyModifiers::NONE))));
impl_from!(TuiEvent: |s: &str|
TuiEvent(Event::Key(KeyEvent::new(match s {
"up" => KeyCode::Up,
"down" => KeyCode::Down,
"left" => KeyCode::Left,
"right" => KeyCode::Right,
"enter" => KeyCode::Enter,
_ => unimplemented!()
}, KeyModifiers::NONE))));
impl_display!(TuiEvent: |self, w| {
match self.0 {
Event::Key(e) => write!(
w, "{:?<12} {:?}", e.code, e.modifiers
),
_ => write!(
w, "{:?}", self.0
)
}
});
impl Ord for TuiEvent { impl Ord for TuiEvent {
fn cmp (&self, other: &Self) -> std::cmp::Ordering { fn cmp (&self, other: &Self) -> std::cmp::Ordering {