use crate::io::WriteDataUnchecked;
#[derive(Clone, Debug, Eq, PartialEq)]
pub struct MacAddress<'a>(pub &'a [u8; 6]);
impl<'a> crate::io::ReadDataUnchecked<'a> for MacAddress<'a> {
fn read_unchecked(reader: &mut impl crate::io::UncheckedReader<'a>) -> Self {
Self(reader.read_fixed_slice_unchecked())
}
}
impl<'a> WriteDataUnchecked for &MacAddress<'a> {
fn write_to_unchecked(self, writer: &mut impl crate::io::UncheckedWriter) {
writer.write_slice_unchecked(self.0)
}
}
impl<'a> MacAddress<'a> {
pub const LEN: usize = 6;
}
impl<'a> Default for MacAddress<'a> {
fn default() -> Self {
Self(&[0; 6])
}
}
impl<'a> AsRef<[u8; 6]> for MacAddress<'a> {
fn as_ref(&self) -> &[u8; 6] {
self.0
}
}
impl<'a> core::fmt::Display for MacAddress<'a> {
fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
write!(
f,
"{:#02x}:{:#02x}:{:#02x}:{:#02x}:{:#02x}:{:#02x}:",
self.0[0], self.0[1], self.0[2], self.0[3], self.0[4], self.0[5],
)
}
}