use core::fmt;
#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
pub struct Version {
pub proto_ver: u8,
pub fw_major: u8,
pub fw_minor: u8,
pub fw_patch: u8,
pub mac: [u8; 6],
}
impl Version {
pub fn mac_hex(&self) -> String {
let mut s = String::with_capacity(12);
for b in self.mac {
s.push(char::from_digit((b >> 4) as u32, 16).unwrap());
s.push(char::from_digit((b & 0xF) as u32, 16).unwrap());
}
s
}
}
impl fmt::Display for Version {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(
f,
"fw {}.{}.{}",
self.fw_major, self.fw_minor, self.fw_patch
)
}
}