diff options
Diffstat (limited to 'src/key.rs')
-rw-r--r-- | src/key.rs | 48 |
1 files changed, 24 insertions, 24 deletions
@@ -32,32 +32,32 @@ pub enum Key { impl Key { /// Returns bytes generated by the given key press. + #[must_use] pub fn into_bytes(self) -> Vec<u8> { - use Key::*; match self { - String(s) => s.into_bytes(), - Char(c) => c.to_string().into_bytes(), - Bytes(s) => s, - Byte(c) => vec![c], - Ctrl(c) => vec![c - b'a' + 1], - Meta(c) => vec![b'\x1b', c], - Backspace => b"\x7f".to_vec(), - Escape => b"\x1b".to_vec(), - Up => b"\x1b[A".to_vec(), - Down => b"\x1b[B".to_vec(), - Right => b"\x1b[C".to_vec(), - Left => b"\x1b[D".to_vec(), - KeypadUp => b"\x1bOA".to_vec(), - KeypadDown => b"\x1bOB".to_vec(), - KeypadRight => b"\x1bOC".to_vec(), - KeypadLeft => b"\x1bOD".to_vec(), - Home => b"\x1b[H".to_vec(), - End => b"\x1b[F".to_vec(), - Insert => b"\x1b[2~".to_vec(), - Delete => b"\x1b[3~".to_vec(), - PageUp => b"\x1b[5~".to_vec(), - PageDown => b"\x1b[6~".to_vec(), - F(c) => match c { + Key::String(s) => s.into_bytes(), + Key::Char(c) => c.to_string().into_bytes(), + Key::Bytes(s) => s, + Key::Byte(c) => vec![c], + Key::Ctrl(c) => vec![c - b'a' + 1], + Key::Meta(c) => vec![b'\x1b', c], + Key::Backspace => b"\x7f".to_vec(), + Key::Escape => b"\x1b".to_vec(), + Key::Up => b"\x1b[A".to_vec(), + Key::Down => b"\x1b[B".to_vec(), + Key::Right => b"\x1b[C".to_vec(), + Key::Left => b"\x1b[D".to_vec(), + Key::KeypadUp => b"\x1bOA".to_vec(), + Key::KeypadDown => b"\x1bOB".to_vec(), + Key::KeypadRight => b"\x1bOC".to_vec(), + Key::KeypadLeft => b"\x1bOD".to_vec(), + Key::Home => b"\x1b[H".to_vec(), + Key::End => b"\x1b[F".to_vec(), + Key::Insert => b"\x1b[2~".to_vec(), + Key::Delete => b"\x1b[3~".to_vec(), + Key::PageUp => b"\x1b[5~".to_vec(), + Key::PageDown => b"\x1b[6~".to_vec(), + Key::F(c) => match c { 1 => b"\x1bOP".to_vec(), 2 => b"\x1bOQ".to_vec(), 3 => b"\x1bOR".to_vec(), |