From 25356a592c0c989b4f4087dad84b382b412018a4 Mon Sep 17 00:00:00 2001 From: Brooks J Rady Date: Thu, 7 Jan 2021 10:49:43 +0000 Subject: [PATCH] Change to the Termion Key enum --- src/keys.rs | 37 ------------------------------------- src/lib.rs | 4 +--- src/shim.rs | 26 ++++++++++++++++++++++++-- 3 files changed, 25 insertions(+), 42 deletions(-) delete mode 100644 src/keys.rs diff --git a/src/keys.rs b/src/keys.rs deleted file mode 100644 index ed44554a..00000000 --- a/src/keys.rs +++ /dev/null @@ -1,37 +0,0 @@ -use serde::{Deserialize, Serialize}; - -#[derive(Debug, PartialOrd, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize)] -pub struct KeyEvent { - pub code: KeyCode, - pub modifiers: KeyModifiers, -} - -#[derive(Debug, PartialOrd, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize)] -pub struct KeyModifiers { - pub bits: u8, - //pub shift: bool, - //pub ctrl: bool, - //pub alt: bool, -} - -#[derive(Debug, PartialOrd, PartialEq, Eq, Clone, Copy, Hash, Serialize, Deserialize)] -pub enum KeyCode { - Backspace, - Enter, - Left, - Right, - Up, - Down, - Home, - End, - PageUp, - PageDown, - Tab, - BackTab, - Delete, - Insert, - F(u8), - Char(char), - Null, - Esc, -} diff --git a/src/lib.rs b/src/lib.rs index 1d1673fc..a1e4f1fd 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,13 +1,11 @@ -mod keys; mod shim; -pub use keys::*; pub use shim::*; pub trait MosaicTile { fn init(&mut self); fn draw(&mut self, rows: usize, cols: usize); - fn handle_key(&mut self, key: KeyEvent); + fn handle_key(&mut self, key: Key); } #[macro_export] diff --git a/src/shim.rs b/src/shim.rs index 850d1668..070b6d2b 100644 --- a/src/shim.rs +++ b/src/shim.rs @@ -1,7 +1,29 @@ -use crate::keys::KeyEvent; +use serde::{Deserialize, Serialize}; use std::{io, path::Path}; -pub fn get_key() -> KeyEvent { +#[derive(Debug, Copy, Clone, PartialEq, Eq, Hash, Serialize, Deserialize)] +pub enum Key { + Backspace, + Left, + Right, + Up, + Down, + Home, + End, + PageUp, + PageDown, + BackTab, + Delete, + Insert, + F(u8), + Char(char), + Alt(char), + Ctrl(char), + Null, + Esc, +} + +pub fn get_key() -> Key { let mut json = String::new(); io::stdin().read_line(&mut json).unwrap(); serde_json::from_str(&json).unwrap()