use rat_event::{ConsumedEvent, Outcome};
#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
pub enum TabbedOutcome {
Continue,
Unchanged,
Changed,
Select(usize),
Close(usize),
}
impl ConsumedEvent for TabbedOutcome {
fn is_consumed(&self) -> bool {
*self != TabbedOutcome::Continue
}
}
impl From<bool> for TabbedOutcome {
fn from(value: bool) -> Self {
if value {
TabbedOutcome::Changed
} else {
TabbedOutcome::Unchanged
}
}
}
impl From<Outcome> for TabbedOutcome {
fn from(value: Outcome) -> Self {
match value {
Outcome::Continue => TabbedOutcome::Continue,
Outcome::Unchanged => TabbedOutcome::Unchanged,
Outcome::Changed => TabbedOutcome::Changed,
}
}
}
impl From<TabbedOutcome> for Outcome {
fn from(value: TabbedOutcome) -> Self {
match value {
TabbedOutcome::Continue => Outcome::Continue,
TabbedOutcome::Unchanged => Outcome::Unchanged,
TabbedOutcome::Changed => Outcome::Changed,
TabbedOutcome::Select(_) => Outcome::Changed,
TabbedOutcome::Close(_) => Outcome::Changed,
}
}
}