#[derive(PartialEq, Eq, Debug, Clone, Hash, Copy)] pub enum QueryType { UNKNOWN(u16), A, // 1 NS, // 2 CNAME, // 5 SOA, // 6 PTR, // 12 MX, // 15 TXT, // 16 AAAA, // 28 SRV, // 33 OPT, // 41 CAA, // 257 } impl QueryType { pub fn to_num(&self) -> u16 { match *self { Self::UNKNOWN(x) => x, Self::A => 1, Self::NS => 2, Self::CNAME => 5, Self::SOA => 6, Self::PTR => 12, Self::MX => 15, Self::TXT => 16, Self::AAAA => 28, Self::SRV => 33, Self::OPT => 41, Self::CAA => 257, } } pub fn from_num(num: u16) -> Self { match num { 1 => Self::A, 2 => Self::NS, 5 => Self::CNAME, 6 => Self::SOA, 12 => Self::PTR, 15 => Self::MX, 16 => Self::TXT, 28 => Self::AAAA, 33 => Self::SRV, 41 => Self::OPT, 257 => Self::CAA, _ => Self::UNKNOWN(num), } } }