awdl_frame_parser/common/
awdl_dns_compression.rs1use macro_bits::serializable_enum;
2
3serializable_enum! {
4 #[derive(Clone, Copy, Debug, Default, PartialEq, Eq, Hash)]
5 pub enum AWDLDnsCompression: u16 {
7 Null => 0xC000,
8
9 AirPlayTcpLocal => 0xC001,
10
11 AirPlayUdpLocal => 0xC002,
12
13 AirPlay => 0xC003,
14
15 RaopTcpLocal => 0xC004,
16
17 RaopUdpLocal => 0xC005,
18
19 Raop => 0xC006,
20
21 AirDropTcpLocal => 0xC007,
22
23 AirDropUdpLocal => 0xC008,
24
25 AirDrop => 0xC009,
26
27 TcpLocal => 0xC00A,
28
29 UdpLocal => 0xC00B,
30
31 #[default]
32 Local => 0xC00C,
33
34 Ip6Arpa => 0xC00D,
35
36 Ip4Arpa => 0xC00E
37 }
38}
39impl AWDLDnsCompression {
40 pub fn to_static_string(&self) -> &'static str {
41 match self {
42 AWDLDnsCompression::Null => "",
43 AWDLDnsCompression::AirPlayTcpLocal => "_airplay._tcp.local",
44 AWDLDnsCompression::AirPlayUdpLocal => "_airplay._udp.local",
45 AWDLDnsCompression::AirPlay => "_airplay",
46 AWDLDnsCompression::RaopTcpLocal => "_raop._tcp.local",
47 AWDLDnsCompression::RaopUdpLocal => "_raop._udp.local",
48 AWDLDnsCompression::Raop => "raop",
49 AWDLDnsCompression::AirDropTcpLocal => "_airdrop._tcp.local",
50 AWDLDnsCompression::AirDropUdpLocal => "_airdrop._udp.local",
51 AWDLDnsCompression::AirDrop => "_airdrop",
52 AWDLDnsCompression::TcpLocal => "_tcp.local",
53 AWDLDnsCompression::UdpLocal => "_udp.local",
54 AWDLDnsCompression::Local => "local",
55 AWDLDnsCompression::Ip6Arpa => "ip6.arpa",
56 AWDLDnsCompression::Ip4Arpa => "ip4.arpa",
57 AWDLDnsCompression::Unknown(_) => "Unknown Compression",
58 }
59 }
60}