#[derive(Debug, PartialEq, Eq)]
#[cfg_attr(feature = "defmt", derive(defmt::Format))]
pub enum Error {
Timeout,
GPIO(&'static str),
Timestamp(&'static str),
Temperature(&'static str),
}
impl core::fmt::Display for Error {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
match self {
Self::Timeout => write!(f, "Timeout"),
Self::GPIO(e) => write!(f, "GPIO with {}", e),
Self::Timestamp(e) => write!(f, "Timestamp with {}", e),
Self::Temperature(e) => write!(f, "Temperature with {}", e),
}
}
}
#[cfg(test)]
mod tests {
use super::*;
#[test]
fn test_error_device() {
assert_eq!(format!("{}", Error::Timeout), "Timeout");
}
#[test]
fn test_error_debug() {
let error = Error::Timeout;
let debug_output = format!("{error:?}",);
assert!(debug_output.contains("Timeout"));
}
#[test]
fn test_error_partialeq() {
assert!(Error::Timeout.eq(&Error::Timeout));
assert!(!Error::Timeout.eq(&Error::GPIO("test")));
}
}