generated from GarandPLG/rust-flake-template
Rename Event to AppEvent and update imports
Rename the generic `Event` enum to `AppEvent` and propagate the change through `app.rs`, `mod.rs`, and `main.rs`. Adjust function signatures, imports, and channel usage to use the new name and the `read` helper from crossterm. Ensure all senders/receivers now work with `AppEvent`.
This commit is contained in:
+12
-12
@@ -4,16 +4,16 @@ use crate::{
|
|||||||
};
|
};
|
||||||
use ratatui::{
|
use ratatui::{
|
||||||
DefaultTerminal, Frame,
|
DefaultTerminal, Frame,
|
||||||
crossterm::event::{self, KeyEvent},
|
crossterm::event::{Event, KeyEvent, read},
|
||||||
layout::Rect,
|
layout::Rect,
|
||||||
};
|
};
|
||||||
use std::{
|
use std::{
|
||||||
io::Result,
|
io::Result,
|
||||||
sync::mpsc::{self, Receiver, RecvTimeoutError},
|
sync::mpsc::{Receiver, RecvTimeoutError, Sender},
|
||||||
time::Duration,
|
time::Duration,
|
||||||
};
|
};
|
||||||
|
|
||||||
pub enum Event {
|
pub enum AppEvent {
|
||||||
Input(KeyEvent),
|
Input(KeyEvent),
|
||||||
Resize(u16, u16),
|
Resize(u16, u16),
|
||||||
}
|
}
|
||||||
@@ -45,7 +45,7 @@ impl App {
|
|||||||
self.states.as_mut()
|
self.states.as_mut()
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn run(&mut self, terminal: &mut DefaultTerminal, rx: Receiver<Event>) -> Result<()> {
|
pub fn run(&mut self, terminal: &mut DefaultTerminal, rx: Receiver<AppEvent>) -> Result<()> {
|
||||||
while !self.exit {
|
while !self.exit {
|
||||||
terminal.draw(|frame: &mut Frame<'_>| self.draw(frame))?;
|
terminal.draw(|frame: &mut Frame<'_>| self.draw(frame))?;
|
||||||
|
|
||||||
@@ -57,8 +57,8 @@ impl App {
|
|||||||
Err(_) => break,
|
Err(_) => break,
|
||||||
};
|
};
|
||||||
match event {
|
match event {
|
||||||
Event::Input(key_event) => self.handle_key_event(key_event)?,
|
AppEvent::Input(key_event) => self.handle_key_event(key_event)?,
|
||||||
Event::Resize(_, _) => {}
|
AppEvent::Resize(_, _) => {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -86,17 +86,17 @@ impl App {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn handle_input_events(tx: mpsc::Sender<Event>) {
|
pub fn handle_input_events(tx: Sender<AppEvent>) {
|
||||||
loop {
|
loop {
|
||||||
match event::read() {
|
match read() {
|
||||||
Ok(ev) => match ev {
|
Ok(ev) => match ev {
|
||||||
event::Event::Key(key) => {
|
Event::Key(key) => {
|
||||||
if tx.send(Event::Input(key)).is_err() {
|
if tx.send(AppEvent::Input(key)).is_err() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
event::Event::Resize(c, r) => {
|
Event::Resize(c, r) => {
|
||||||
if tx.send(Event::Resize(c, r)).is_err() {
|
if tx.send(AppEvent::Resize(c, r)).is_err() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+1
-1
@@ -8,7 +8,7 @@ pub mod view;
|
|||||||
pub mod views;
|
pub mod views;
|
||||||
pub mod widgets;
|
pub mod widgets;
|
||||||
|
|
||||||
pub use app::{App, Event, handle_input_events};
|
pub use app::{App, AppEvent, handle_input_events};
|
||||||
pub use keybind::handle_keybindings;
|
pub use keybind::handle_keybindings;
|
||||||
pub use state::GameStates;
|
pub use state::GameStates;
|
||||||
pub use view::View;
|
pub use view::View;
|
||||||
|
|||||||
+4
-4
@@ -1,11 +1,11 @@
|
|||||||
use ratatui::{Terminal, prelude::CrosstermBackend};
|
use ratatui::{Terminal, prelude::CrosstermBackend};
|
||||||
use std::{
|
use std::{
|
||||||
io::{Result, Stdout},
|
io::{Result, Stdout},
|
||||||
sync::mpsc::{self, Sender},
|
sync::mpsc::{Sender, channel},
|
||||||
thread,
|
thread,
|
||||||
};
|
};
|
||||||
use war_in_tunnels::{
|
use war_in_tunnels::{
|
||||||
app::{App, Event, handle_input_events},
|
app::{App, AppEvent, handle_input_events},
|
||||||
cli::{Cli, get_args},
|
cli::{Cli, get_args},
|
||||||
logs::init_logger,
|
logs::init_logger,
|
||||||
};
|
};
|
||||||
@@ -24,9 +24,9 @@ fn main() -> Result<()> {
|
|||||||
let mut terminal: Terminal<CrosstermBackend<Stdout>> = ratatui::init();
|
let mut terminal: Terminal<CrosstermBackend<Stdout>> = ratatui::init();
|
||||||
let mut app: App = App::new(args);
|
let mut app: App = App::new(args);
|
||||||
|
|
||||||
let (event_tx, event_rx) = mpsc::channel::<Event>();
|
let (event_tx, event_rx) = channel::<AppEvent>();
|
||||||
|
|
||||||
let tx_to_input_events: Sender<Event> = event_tx.clone();
|
let tx_to_input_events: Sender<AppEvent> = event_tx.clone();
|
||||||
thread::spawn(move || {
|
thread::spawn(move || {
|
||||||
handle_input_events(tx_to_input_events);
|
handle_input_events(tx_to_input_events);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user