rat_widget/tabbed/
event.rs1use rat_event::{ConsumedEvent, Outcome};
2
3#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
5pub enum TabbedOutcome {
6 Continue,
8 Unchanged,
11 Changed,
16 Select(usize),
18 Close(usize),
20}
21
22impl ConsumedEvent for TabbedOutcome {
23 fn is_consumed(&self) -> bool {
24 *self != TabbedOutcome::Continue
25 }
26}
27
28impl From<bool> for TabbedOutcome {
30 fn from(value: bool) -> Self {
31 if value {
32 TabbedOutcome::Changed
33 } else {
34 TabbedOutcome::Unchanged
35 }
36 }
37}
38
39impl From<Outcome> for TabbedOutcome {
40 fn from(value: Outcome) -> Self {
41 match value {
42 Outcome::Continue => TabbedOutcome::Continue,
43 Outcome::Unchanged => TabbedOutcome::Unchanged,
44 Outcome::Changed => TabbedOutcome::Changed,
45 }
46 }
47}
48
49impl From<TabbedOutcome> for Outcome {
50 fn from(value: TabbedOutcome) -> Self {
51 match value {
52 TabbedOutcome::Continue => Outcome::Continue,
53 TabbedOutcome::Unchanged => Outcome::Unchanged,
54 TabbedOutcome::Changed => Outcome::Changed,
55 TabbedOutcome::Select(_) => Outcome::Changed,
56 TabbedOutcome::Close(_) => Outcome::Changed,
57 }
58 }
59}