45 lines
789 B
Rust
45 lines
789 B
Rust
use {
|
|
crossterm::event::{KeyEvent, MouseEvent},
|
|
std::fmt::{Display, Formatter, Result},
|
|
strum::EnumString,
|
|
};
|
|
|
|
#[derive(Debug, PartialEq, Eq, Clone, EnumString)]
|
|
pub enum Action {
|
|
Tick,
|
|
Render,
|
|
Resize(u16, u16),
|
|
Suspend,
|
|
Resume,
|
|
Quit,
|
|
Refresh,
|
|
Error(String),
|
|
Help,
|
|
Version,
|
|
AppAction(String),
|
|
Key(String),
|
|
}
|
|
|
|
impl Display for Action {
|
|
fn fmt(&self, f: &mut Formatter<'_>) -> Result {
|
|
let enum_str = write!(f, "{:?}", self);
|
|
enum_str
|
|
}
|
|
}
|
|
|
|
#[derive(Clone, Debug)]
|
|
pub enum Event {
|
|
Init,
|
|
Quit,
|
|
Error,
|
|
Closed,
|
|
Tick,
|
|
Render,
|
|
FocusGained,
|
|
FocusLost,
|
|
Paste(String),
|
|
Key(KeyEvent),
|
|
Mouse(MouseEvent),
|
|
Resize(u16, u16),
|
|
}
|