hexga_utils 0.0.11-beta.56

miscellaneous stuff, when somethings will be too big it will be on a separate crate
Documentation
use super::*;

/*
#[cfg_attr(feature = "serde", derive(Serialize, Deserialize))]
#[derive(Clone, Copy, PartialEq, Eq, Hash, PartialOrd, Ord, Debug)]
pub enum Loading<T,E=(),L=()>
{
    Loading(L),
    Loaded(T),
    Error(E),
}

impl<T,E,L> Loading<T,E,L>
{
    pub fn as_loading(&self) -> Option<&L> { if let Self::Loading(l) = self { Some(l) } else { None }}
    pub fn as_loading_mut(&mut self) -> Option<&mut L> { if let Self::Loading(l) = self { Some(l) } else { None }}
    pub fn is_loading(&self) -> bool { self.as_loading().is_some() }

    pub fn as_loaded(&self) -> Option<&T> { if let Self::Loaded(t) = self { Some(t) } else { None }}
    pub fn as_loaded_mut(&mut self) -> Option<&mut T> { if let Self::Loaded(t) = self { Some(t) } else { None }}
    pub fn is_loaded(&self) -> bool { self.as_loaded().is_some() }

    pub fn as_error(&self) -> Option<&E> { if let Self::Error(e) = self { Some(e) } else { None }}
    pub fn as_error_mut(&mut self) -> Option<&mut E> { if let Self::Error(e) = self { Some(e) } else { None }}
    pub fn is_error(&self) -> bool { self.as_error().is_some() }

    pub fn get(&self) -> Option<&T> { self.as_loaded() }
    pub fn get_mut(&mut self) -> Option<&mut T> { self.as_loaded_mut() }
}*/