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::{
|
||||
DefaultTerminal, Frame,
|
||||
crossterm::event::{self, KeyEvent},
|
||||
crossterm::event::{Event, KeyEvent, read},
|
||||
layout::Rect,
|
||||
};
|
||||
use std::{
|
||||
io::Result,
|
||||
sync::mpsc::{self, Receiver, RecvTimeoutError},
|
||||
sync::mpsc::{Receiver, RecvTimeoutError, Sender},
|
||||
time::Duration,
|
||||
};
|
||||
|
||||
pub enum Event {
|
||||
pub enum AppEvent {
|
||||
Input(KeyEvent),
|
||||
Resize(u16, u16),
|
||||
}
|
||||
@@ -45,7 +45,7 @@ impl App {
|
||||
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 {
|
||||
terminal.draw(|frame: &mut Frame<'_>| self.draw(frame))?;
|
||||
|
||||
@@ -57,8 +57,8 @@ impl App {
|
||||
Err(_) => break,
|
||||
};
|
||||
match event {
|
||||
Event::Input(key_event) => self.handle_key_event(key_event)?,
|
||||
Event::Resize(_, _) => {}
|
||||
AppEvent::Input(key_event) => self.handle_key_event(key_event)?,
|
||||
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 {
|
||||
match event::read() {
|
||||
match read() {
|
||||
Ok(ev) => match ev {
|
||||
event::Event::Key(key) => {
|
||||
if tx.send(Event::Input(key)).is_err() {
|
||||
Event::Key(key) => {
|
||||
if tx.send(AppEvent::Input(key)).is_err() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
event::Event::Resize(c, r) => {
|
||||
if tx.send(Event::Resize(c, r)).is_err() {
|
||||
Event::Resize(c, r) => {
|
||||
if tx.send(AppEvent::Resize(c, r)).is_err() {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -8,7 +8,7 @@ pub mod view;
|
||||
pub mod views;
|
||||
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 state::GameStates;
|
||||
pub use view::View;
|
||||
|
||||
+4
-4
@@ -1,11 +1,11 @@
|
||||
use ratatui::{Terminal, prelude::CrosstermBackend};
|
||||
use std::{
|
||||
io::{Result, Stdout},
|
||||
sync::mpsc::{self, Sender},
|
||||
sync::mpsc::{Sender, channel},
|
||||
thread,
|
||||
};
|
||||
use war_in_tunnels::{
|
||||
app::{App, Event, handle_input_events},
|
||||
app::{App, AppEvent, handle_input_events},
|
||||
cli::{Cli, get_args},
|
||||
logs::init_logger,
|
||||
};
|
||||
@@ -24,9 +24,9 @@ fn main() -> Result<()> {
|
||||
let mut terminal: Terminal<CrosstermBackend<Stdout>> = ratatui::init();
|
||||
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 || {
|
||||
handle_input_events(tx_to_input_events);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user