dns_parser_joe/
structs.rs1use {QueryType, QueryClass, Name, Class, Header, RRData};
2
3
4#[derive(Debug)]
6pub struct Packet<'a> {
7 pub header: Header,
8 pub questions: Vec<Question<'a>>,
9 pub answers: Vec<ResourceRecord<'a>>,
10 pub nameservers: Vec<ResourceRecord<'a>>,
11 pub additional: Vec<ResourceRecord<'a>>,
12 pub opt: Option<OptRecord<'a>>,
18}
19
20#[derive(Debug)]
22pub struct Question<'a> {
23 pub qname: Name<'a>,
24 pub prefer_unicast: bool,
27 pub qtype: QueryType,
28 pub qclass: QueryClass,
29}
30
31#[derive(Debug)]
37pub struct ResourceRecord<'a> {
38 pub name: Name<'a>,
39 pub multicast_unique: bool,
43 pub cls: Class,
44 pub ttl: u32,
45 pub data: RRData<'a>,
46}
47
48#[derive(Debug)]
50pub struct OptRecord<'a> {
51 pub udp: u16,
52 pub extrcode: u8,
53 pub version: u8,
54 pub flags: u16,
55 pub data: RRData<'a>,
56}
57
58#[derive(Debug)]
59pub struct SoaRecord<'a> {
60 pub primary_ns: Name<'a>,
61 pub mailbox: Name<'a>,
62 pub serial: u32,
63 pub refresh: u32,
64 pub retry: u32,
65 pub expire: u32,
66 pub minimum_ttl: u32,
67}