1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
use core::fmt;
use parser;
impl From<parser::ParseError> for ::Error {
fn from(err: parser::ParseError) -> Self {
::Error::Parse(err)
}
}
impl<'a> fmt::Display for parser::Expected {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
match *self {
parser::Expected::Any(ref crits) => write!(f, "one of {:?}", crits),
parser::Expected::Exact(crit) => write!(f, "{}", crit),
parser::Expected::Range { min, max } => {
write!(f, "{}..{} inclusive", min, max)
}
}
}
}
impl fmt::Display for parser::ParseError {
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
write!(f, "{}: ", self._description())?;
match *self {
parser::ParseError::InvalidCharacter {
expected,
found,
index,
} => {
write!(f, "expected {}, found {} at {}", expected, found, index)
}
parser::ParseError::InvalidGroupCount {
ref expected,
found,
} => write!(f, "expected {}, found {}", expected, found),
parser::ParseError::InvalidGroupLength {
ref expected,
found,
group,
} => write!(
f,
"expected {}, found {} in group {}",
expected, found, group,
),
parser::ParseError::InvalidLength {
ref expected,
found,
} => write!(f, "expected {}, found {}", expected, found),
}
}
}