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