#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Direction {
Neutral,
Rising,
Falling,
}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum Condition {
Normal,
Degraded,
}
#[derive(Debug, Clone, PartialEq, Eq)]
pub enum ConfigError {
Missing(&'static str),
Invalid(&'static str),
}
impl core::fmt::Display for ConfigError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::Missing(param) => write!(f, "configuration error: {param} must be set"),
Self::Invalid(msg) => write!(f, "configuration error: {msg}"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for ConfigError {}
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum DataError {
NotANumber,
Infinite,
Negative,
}
impl core::fmt::Display for DataError {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::NotANumber => write!(f, "input contained NaN"),
Self::Infinite => write!(f, "input contained infinity"),
Self::Negative => write!(f, "input contained a negative value"),
}
}
}
#[cfg(feature = "std")]
impl std::error::Error for DataError {}