use crate::Setting;
impl<T> Setting<T>
where
T: Default,
{
pub fn set(&mut self, value: T) {
*self = Self::Normal(value);
}
pub fn reset(&mut self) {
*self = Self::Initial;
}
pub fn unset(&mut self) {
*self = Self::Unset;
}
pub fn unwrap(self) -> T {
match self {
Self::Initial | Self::Unset => Default::default(),
Self::Normal(t) => t,
}
}
pub fn is_default(&self) -> bool {
matches!(self, Self::Initial)
}
pub fn is_none(&self) -> bool {
matches!(self, Self::Unset)
}
pub fn is_some(&self) -> bool {
matches!(self, Self::Normal(_))
}
}