#[derive(Debug, Clone)] pub struct DNSQuery { pub id: u16, pub questions: Vec, } #[derive(Debug, Clone)] pub struct DNSResponse { pub id: u16, pub questions: Vec, pub answers: Vec, } #[derive(Debug, Clone)] pub struct DNSQuestion { pub name: String, pub r#type: DNSType, } #[derive(Debug, Clone)] pub enum DNSType { HostAddress, NameServer, CanonicalName, StartOfZoneAuthority, DomainNamePointer, MailExchange, TextStrings, } #[derive(Debug, Clone)] pub struct DNSResourceRecord { pub name: String, pub r#type: DNSType, pub ttl: u32, pub data: String, }