aboutsummaryrefslogtreecommitdiff
path: root/src/event.rs
diff options
context:
space:
mode:
authorMroik <mroik@delayed.space>2025-11-27 04:42:48 +0100
committerMroik <mroik@delayed.space>2025-11-27 04:42:48 +0100
commitc32dcfc16bc5a5013c04d9c28793939b19aa88f5 (patch)
treebe08548373db8db74c5e01d8283d540217284ea8 /src/event.rs
parentf945f51a1092df692b5c47296bc681dc5507aff6 (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.rs36
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(());
}
XMR address: 854DmXNrxULU3ZFJVs4Wc8PFhbq29RhqHhY8W6cdWrtFN3qmooKyyeYPcDzZTNRxphhJ5UzASQfAdEMwSteVqymk28aLhqj