use std::str::FromStr;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
#[non_exhaustive]
pub enum FoxWorkModes {
ForceDischarge,
PeakShaving,
Feedin,
Backup,
SelfUse,
ForceCharge,
Unknown,
}
impl FoxWorkModes {
pub const fn as_str(&self) -> &'static str {
match self {
FoxWorkModes::ForceDischarge => "ForceDischarge",
FoxWorkModes::PeakShaving => "PeakShaving",
FoxWorkModes::Feedin => "Feedin",
FoxWorkModes::Backup => "Backup",
FoxWorkModes::SelfUse => "SelfUse",
FoxWorkModes::ForceCharge => "ForceCharge",
FoxWorkModes::Unknown => "Unknown",
}
}
}
impl FromStr for FoxWorkModes {
type Err = ();
fn from_str(s: &str) -> Result<Self, Self::Err> {
match s {
"ForceDischarge" => Ok(FoxWorkModes::ForceDischarge),
"PeakShaving" => Ok(FoxWorkModes::PeakShaving),
"Feedin" => Ok(FoxWorkModes::Feedin),
"Backup" => Ok(FoxWorkModes::Backup),
"SelfUse" => Ok(FoxWorkModes::SelfUse),
"ForceCharge" => Ok(FoxWorkModes::ForceCharge),
_ => Ok(FoxWorkModes::Unknown),
}
}
}