dns_message_parser/rr/
rfc_7043.rs

1use crate::rr::Class;
2use crate::DomainName;
3use std::fmt::{Display, Formatter, Result as FmtResult};
4
5#[derive(Debug, Clone, PartialEq, Eq, Hash)]
6pub struct EUI48 {
7    pub domain_name: DomainName,
8    pub ttl: u32,
9    pub class: Class,
10    pub eui_48: [u8; 6],
11}
12
13impl Display for EUI48 {
14    fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult {
15        write!(
16            f,
17            "{} {} {} EUI48 {:02x}-{:02x}-{:02x}-{:02x}-{:02x}-{:02x}",
18            self.domain_name,
19            self.ttl,
20            self.class,
21            self.eui_48[0],
22            self.eui_48[1],
23            self.eui_48[2],
24            self.eui_48[3],
25            self.eui_48[4],
26            self.eui_48[5]
27        )
28    }
29}
30
31#[derive(Debug, Clone, PartialEq, Eq, Hash)]
32pub struct EUI64 {
33    pub domain_name: DomainName,
34    pub ttl: u32,
35    pub class: Class,
36    pub eui_64: [u8; 8],
37}
38
39impl Display for EUI64 {
40    fn fmt(&self, f: &mut Formatter<'_>) -> FmtResult {
41        write!(
42            f,
43            "{} {} {} EUI64 {:02x}-{:02x}-{:02x}-{:02x}-{:02x}-{:02x}-{:02x}-{:02x}",
44            self.domain_name,
45            self.ttl,
46            self.class,
47            self.eui_64[0],
48            self.eui_64[1],
49            self.eui_64[2],
50            self.eui_64[3],
51            self.eui_64[4],
52            self.eui_64[5],
53            self.eui_64[6],
54            self.eui_64[7]
55        )
56    }
57}