1use num_derive::FromPrimitive;
2use serde::{Deserialize, Serialize};
3use serde_repr::*;
4use strum::{EnumCount, EnumIter};
5
6#[derive(
10 Serialize_repr, Deserialize_repr, Eq, PartialEq, Debug, EnumCount, EnumIter, FromPrimitive,
11)]
12#[repr(u8)]
13pub enum DNSSECStatus {
14 DNSSECUnspecified,
15 DNSSECSecure,
16 DNSSECInsecure,
17 DNSSECBogus,
18 DNSSECAbandoned,
19}
20
21#[derive(
22 Serialize_repr, Deserialize_repr, Eq, PartialEq, Debug, EnumCount, EnumIter, FromPrimitive,
23)]
24#[repr(u8)]
25pub enum QueryStatus {
26 QueryUnknown,
27 QueryGravity,
28 QueryForwarded,
29 QueryCache,
30 QueryRegex,
31 QueryBlacklist,
32 QueryExternalBlockedIp,
33 QueryExternalBlockedNull,
34 QueryExternalBlockedNxra,
35 QueryGravityCname,
36 QueryRegexCname,
37 QueryBlacklistCname,
38 QueryRetried,
39 QueryRetriedDnssec,
40 QueryInProgress,
41 QueryDbbusy,
42 QueryStatusMax,
43}
44
45#[derive(
46 Serialize_repr, Deserialize_repr, Eq, PartialEq, Debug, EnumCount, EnumIter, FromPrimitive,
47)]
48#[repr(u8)]
49pub enum ReplyType {
50 ReplyUNKNOWN,
51 ReplyNODATA,
52 ReplyNXDOMAIN,
53 ReplyCNAME,
54 ReplyIP,
55 ReplyDOMAIN,
56 ReplyRRNAME,
57 ReplySERVFAIL,
58 ReplyREFUSED,
59 ReplyNOTIMP,
60 ReplyOTHER,
61 ReplyDNSSEC,
62 ReplyNONE,
63 ReplyBLOB,
64 QueryReplyMax,
65}
66
67#[derive(Deserialize, Serialize, Eq, PartialEq, Debug, EnumCount, EnumIter, FromPrimitive)]
68pub enum QueryType {
69 A,
70 AAAA,
71 ANY,
72 SRV,
73 SOA,
74 PTR,
75 TXT,
76 NAPTR,
77 MX,
78 DS,
79 RRSIG,
80 DNSKEY,
81 NS,
82 OTHER,
83 SVCB,
84 HTTPS,
85 MAX,
86}