state.rs 428 B

1234567891011121314151617
  1. use std::{io, sync::MutexGuard};
  2. use crate::utils::ui::{event::WarpUiCallBackType, uicore::UiCore};
  3. use super::mode::ModeType;
  4. pub enum StateCallback {
  5. None,
  6. Reset,
  7. Exit(ModeType),
  8. }
  9. pub trait StateMachine {
  10. fn handle(&mut self, ui: &mut MutexGuard<UiCore>) -> io::Result<WarpUiCallBackType>;
  11. fn exit(&mut self, callback: WarpUiCallBackType) -> io::Result<WarpUiCallBackType>;
  12. fn reset(&mut self);
  13. }