perch/src/keys/save.rs

36 lines
1 KiB
Rust

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 })
}
}
}