Add MacAddress::octets() and impl From<[u8; 6]> for MacAddress

This commit is contained in:
Michael Watzko 2021-03-23 23:27:09 +01:00
commit 050fc4c1ba

View file

@ -43,6 +43,27 @@ impl MacAddress {
}
}
/// Returns the six eight-bit integers that make up this address.
///
/// # Examples
///
/// ```
/// use w5500::MacAddress;
///
/// let addr = MacAddress::new(13, 12, 11, 10, 15, 14);
/// assert_eq!([13u8, 12u8, 11u8, 10u8, 15u8, 14u8], addr.octets());
/// ```
pub const fn octets(&self) -> [u8; 6] {
[
self.octets[0],
self.octets[1],
self.octets[2],
self.octets[3],
self.octets[4],
self.octets[5],
]
}
/// An EUI-48 MAC address representing an unspecified address:
/// 00:00:00:00:00:00
///
@ -57,6 +78,24 @@ impl MacAddress {
pub const UNSPECIFIED: Self = MacAddress::new(0, 0, 0, 0, 0, 0);
}
impl From<[u8; 6]> for MacAddress {
/// Creates an `Ipv4Addr` from a six element byte array.
///
/// # Examples
///
/// ```
/// use w5500::MacAddress;
///
/// let addr = MacAddress::from([13u8, 12u8, 11u8, 10u8, 15u8, 14u8]);
/// assert_eq!(MacAddress::new(13, 12, 11, 10, 15, 14), addr);
/// ```
fn from(octets: [u8; 6]) -> MacAddress {
MacAddress::new(
octets[0], octets[1], octets[2], octets[3], octets[4], octets[5],
)
}
}
impl ::core::fmt::Display for MacAddress {
/// String formatter for MacAddress addresses.
fn fmt(&self, fmt: &mut ::core::fmt::Formatter) -> ::core::fmt::Result {