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