#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum EventResult {
#[default]
Ignored,
Consumed,
ConsumedAndRender,
}
impl EventResult {
#[inline]
pub fn is_consumed(&self) -> bool {
!matches!(self, EventResult::Ignored)
}
#[inline]
pub fn needs_render(&self) -> bool {
matches!(self, EventResult::ConsumedAndRender)
}
pub fn or(self, other: EventResult) -> EventResult {
match (self, other) {
(EventResult::ConsumedAndRender, _) | (_, EventResult::ConsumedAndRender) => {
EventResult::ConsumedAndRender
}
(EventResult::Consumed, _) | (_, EventResult::Consumed) => EventResult::Consumed,
_ => EventResult::Ignored,
}
}
}
impl From<bool> for EventResult {
fn from(handled: bool) -> Self {
if handled {
EventResult::ConsumedAndRender
} else {
EventResult::Ignored
}
}
}
#[derive(Debug, Clone, Copy, PartialEq, Eq, Default)]
pub enum FocusStyle {
#[default]
Solid,
Rounded,
Double,
Dotted,
Bold,
Ascii,
}