#[derive(PartialEq, Eq, Debug, Clone, Hash, Copy)] pub enum QueryType { UNKNOWN(u16), A, // 1 NS, // 2 CNAME, // 5 MX, // 15 AAAA, // 28 } impl QueryType { pub fn to_num(&self) -> u16 { match *self { Self::UNKNOWN(x) => x, Self::A => 1, Self::NS => 2, Self::CNAME => 5, Self::MX => 15, Self::AAAA => 28, } } pub fn from_num(num: u16) -> Self { match num { 1 => Self::A, 2 => Self::NS, 5 => Self::CNAME, 15 => Self::MX, 28 => Self::AAAA, _ => Self::UNKNOWN(num), } } }