diff options
| author | Mroik <mroik@delayed.space> | 2025-11-27 04:42:48 +0100 |
|---|---|---|
| committer | Mroik <mroik@delayed.space> | 2025-11-27 04:42:48 +0100 |
| commit | c32dcfc16bc5a5013c04d9c28793939b19aa88f5 (patch) | |
| tree | be08548373db8db74c5e01d8283d540217284ea8 /src/event.rs | |
| parent | f945f51a1092df692b5c47296bc681dc5507aff6 (diff) | |
Refactor events generationssingle-loop-event-generation
Move all events generation in the same code section
Diffstat (limited to 'src/event.rs')
| -rw-r--r-- | src/event.rs | 36 |
1 files changed, 14 insertions, 22 deletions
diff --git a/src/event.rs b/src/event.rs index 7e0db3e..22d538b 100644 --- a/src/event.rs +++ b/src/event.rs @@ -1,10 +1,8 @@ -use std::{error::Error, time::Duration}; +use std::error::Error; -use crossterm::event::{KeyCode, KeyModifiers, poll, read}; +use crossterm::event::{KeyCode, KeyModifiers, read}; use tokio::sync::mpsc::Sender; -use crate::app::TICK_RATE; - #[derive(PartialEq)] pub enum Event { Terminate, @@ -17,25 +15,19 @@ pub enum Event { // TODO // - [ ] Pause on focus lost // - [ ] Invalidate on paste -pub async fn handle_input(sender: &Sender<Event>) -> Result<(), Box<dyn Error>> { - if poll(Duration::from_millis(TICK_RATE))? { - match read()? { - //crossterm::event::Event::FocusGained => todo!(), - //crossterm::event::Event::FocusLost => todo!(), - //crossterm::event::Event::Paste(_) => todo!(), - crossterm::event::Event::Resize(_, _) => sender.send(Event::ForceRender).await?, - crossterm::event::Event::Key(key_event) => { - match (key_event.code, key_event.modifiers) { - (KeyCode::Char('c'), KeyModifiers::CONTROL) => { - sender.send(Event::Terminate).await? - } - (KeyCode::Backspace, _) => sender.send(Event::Backspace).await?, - (KeyCode::Char(c), _) => sender.send(Event::KeyPress(c)).await?, - _ => (), - } - } +pub async fn handle_input(sender: Sender<Event>) -> Result<(), Box<dyn Error>> { + match read()? { + //crossterm::event::Event::FocusGained => todo!(), + //crossterm::event::Event::FocusLost => todo!(), + //crossterm::event::Event::Paste(_) => todo!(), + crossterm::event::Event::Resize(_, _) => sender.send(Event::ForceRender).await?, + crossterm::event::Event::Key(key_event) => match (key_event.code, key_event.modifiers) { + (KeyCode::Char('c'), KeyModifiers::CONTROL) => sender.send(Event::Terminate).await?, + (KeyCode::Backspace, _) => sender.send(Event::Backspace).await?, + (KeyCode::Char(c), _) => sender.send(Event::KeyPress(c)).await?, _ => (), - } + }, + _ => (), } return Ok(()); } |
