use crate::*; impl Perch { pub fn handle_save (&mut self, event: &Event, choice: u8) -> Usually<()> { match event { press!(Esc) => { self.mode = None } press!(Left) => { self.mode = Some(Mode::Save { choice: choice.overflowing_sub(1).0.min(2) }) }, press!(Right) => { self.mode = Some(Mode::Save { choice: (choice + 1) % 3 }) }, press!(Enter) => match choice { 0 => { self.revert_all(); self.mode = None; }, 1 => { self.mode = None; }, 2 => { self.save_all()?; self.mode = None }, _ => unreachable!(), }, _ => {} } Ok(()) } pub fn save_begin (&mut self) { if self.changes > 0 { self.mode = Some(Mode::Save { choice: 1 }) } } }