1use std::str::Utf8Error;
2
3quick_error! {
4 #[derive(Debug)]
6 pub enum Error {
7 BadPointer {
10 description("invalid compression pointer not pointing backwards \
11 when parsing label")
12 }
13 HeaderTooShort {
15 description("packet is smaller than header size")
16 }
17 UnexpectedEOF {
19 description("packet is has incomplete data")
20 }
21 WrongRdataLength {
23 description("wrong (too short or too long) size of RDATA")
24 }
25 ReservedBitsAreNonZero {
27 description("packet has non-zero reserved bits")
28 }
29 UnknownLabelFormat {
31 description("label in domain name has unknown label format")
32 }
33 InvalidQueryType(code: u16) {
35 description("query type code is invalid")
36 display("query type {} is invalid", code)
37 }
38 InvalidQueryClass(code: u16) {
40 description("query class code is invalid")
41 display("query class {} is invalid", code)
42 }
43 InvalidType(code: u16) {
45 description("type code is invalid")
46 display("type {} is invalid", code)
47 }
48 InvalidClass(code: u16) {
50 description("class code is invalid")
51 display("class {} is invalid", code)
52 }
53 LabelIsNotAscii {
55 description("invalid characters encountered while reading label")
56 }
57 TxtDataIsNotUTF8(error: Utf8Error) {
59 description("invalid characters encountered while reading TXT")
60 display("{:?}", error)
61 }
62 WrongState {
64 description("parser is in the wrong state")
65 }
66 AdditionalOPT {
68 description("additional OPT record found")
69 }
70 }
71}