dns_message_parser/rr/
rfc_7043.rs1use 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}