mural 0.2.1

Conversational terminal rendering for command-line applications.
Documentation
use crossterm::event as crossterm_event;
use mural::{KeyCode, KeyEvent, KeyEventKind, KeyModifiers};

#[test]
fn key_event_maps_from_crossterm_key_events() {
    let event = crossterm_event::KeyEvent::new_with_kind(
        crossterm_event::KeyCode::Char('x'),
        crossterm_event::KeyModifiers::CONTROL
            | crossterm_event::KeyModifiers::ALT
            | crossterm_event::KeyModifiers::SUPER
            | crossterm_event::KeyModifiers::META
            | crossterm_event::KeyModifiers::HYPER,
        crossterm_event::KeyEventKind::Repeat,
    );

    let mapped = KeyEvent::from(event);

    assert_eq!(mapped.code(), KeyCode::Char('x'));
    assert_eq!(mapped.kind_value(), KeyEventKind::Repeat);
    assert!(mapped.modifiers().contains(KeyModifiers::CONTROL));
    assert!(mapped.modifiers().contains(KeyModifiers::ALT));
    assert!(mapped.modifiers().contains(KeyModifiers::SUPER));
    assert!(mapped.modifiers().contains(KeyModifiers::META));
    assert!(mapped.modifiers().contains(KeyModifiers::HYPER));
}