36 lines
739 B
Rust
36 lines
739 B
Rust
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
|
|
pub enum ScreenMode {
|
|
CardDetail,
|
|
DexGrid,
|
|
Settings,
|
|
}
|
|
|
|
#[derive(Debug, Clone, Copy)]
|
|
pub struct NavigationState {
|
|
pub current_screen: ScreenMode,
|
|
pub card_index: usize,
|
|
pub use_first_payload: bool,
|
|
}
|
|
|
|
impl Default for NavigationState {
|
|
fn default() -> Self {
|
|
Self {
|
|
current_screen: ScreenMode::CardDetail,
|
|
card_index: 0,
|
|
use_first_payload: true,
|
|
}
|
|
}
|
|
}
|
|
|
|
impl NavigationState {
|
|
pub fn new() -> Self {
|
|
Self::default()
|
|
}
|
|
|
|
pub fn toggle_payload(&mut self) -> bool {
|
|
let current = self.use_first_payload;
|
|
self.use_first_payload = !self.use_first_payload;
|
|
current
|
|
}
|
|
}
|