use std::str::FromStr;
use anyhow::{anyhow, Error, Result};
#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug)]
pub enum MMBool {
No,
Yes,
}
impl MMBool {
#[must_use]
pub const fn as_bool(&self) -> bool {
match self {
Self::No => false,
Self::Yes => true,
}
}
}
impl FromStr for MMBool {
type Err = Error;
fn from_str(s: &str) -> Result<Self> {
match s.to_lowercase().as_str() {
"no" | "0" => Ok(Self::No),
"yes" | "1" => Ok(Self::Yes),
unknown => Err(anyhow!("unknown boolean value: {unknown}")),
}
}
}