use std::fmt;
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum Action {
Quit,
Send(Vec<u8>),
FilterToggle(String),
}
impl fmt::Display for Action {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Action::Quit => write!(f, "quit"),
Action::Send(bytes) => {
if let Ok(s) = std::str::from_utf8(bytes) {
write!(f, "send {:?}", s)
} else {
write!(f, "send-bytes {:02x?}", bytes)
}
}
Action::FilterToggle(name) => write!(f, "toggle {}", name),
}
}
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum KeybindResult {
Passthrough(Vec<u8>),
Action(Action),
Consumed,
}