use std::fmt;
#[repr(C)]
#[derive(Clone, Copy)]
pub enum ChargingStatus {
NotConnected,
Charging,
ChargingComplete,
ChargingOnHold,
}
impl From<i32> for ChargingStatus {
fn from(value: i32) -> Self {
match value {
0 => Self::NotConnected,
1 => Self::Charging,
2 => Self::ChargingComplete,
3 => Self::ChargingOnHold,
_ => Self::NotConnected,
}
}
}
impl From<f32> for ChargingStatus {
fn from(value: f32) -> Self {
Self::from(value as i32)
}
}
impl fmt::Display for ChargingStatus {
fn fmt(&self, formatter: &mut fmt::Formatter) -> fmt::Result {
match *self {
Self::NotConnected => write!(formatter, "Not connected"),
Self::Charging => write!(formatter, "Charging"),
Self::ChargingComplete => write!(formatter, "Charging complete"),
Self::ChargingOnHold => write!(formatter, "Charging on hold"),
}
}
}