use crate::state::AppState;
#[repr(u8)]
pub enum StateKind {
Projects = 1 << 0,
Invitations = 1 << 1,
}
impl StateKind {
pub fn full_bitmask() -> u8 {
Self::Projects as u8 | Self::Invitations as u8
}
}
impl AppState {
pub fn mark_as_loaded(&self, state_loaded: StateKind) {
let mut guard = self.state_loaded.lock().unwrap();
*guard |= state_loaded as u8;
}
pub fn is_state_loaded(&self) -> bool {
let guard = self.state_loaded.lock().unwrap();
*guard == StateKind::full_bitmask()
}
}