netlink_rust/core/
hardware_address.rs1use std::fmt;
2
3#[derive(Copy, Clone, Eq, PartialEq, Hash, Debug)]
6pub struct HardwareAddress {
7 value: [u8; 6],
8}
9
10impl HardwareAddress {
11 pub fn bytes(&self) -> [u8; 6] {
12 self.value.clone()
13 }
14}
15
16impl fmt::Display for HardwareAddress {
17 fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
18 write!(f, "{:02x}:{:02x}:{:02x}:{:02x}:{:02x}:{:02x}",
19 self.value[0], self.value[1], self.value[2],
20 self.value[3], self.value[4], self.value[5])
21 }
22}
23
24impl<'a> From<&'a [u8]> for HardwareAddress {
25 fn from(value: &'a [u8]) -> HardwareAddress {
26 HardwareAddress {
27 value: [value[0], value[1], value[2], value[3], value[4], value[5]]
28 }
29 }
30}
31
32impl From<[u8; 6]> for HardwareAddress {
33 fn from(value: [u8; 6]) -> HardwareAddress {
34 HardwareAddress {
35 value: [value[0], value[1], value[2], value[3], value[4], value[5]]
36 }
37 }
38}