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
use failure::Fail;
use std::{io, str};
pub type Result<T> = std::result::Result<T, Error>;
#[derive(Debug, Fail)]
pub enum Error {
#[fail(display = "I/O error.")]
Io { err: io::Error },
#[fail(display = "Utf8 encoding error.")]
Utf8 { err: str::Utf8Error },
#[fail(display = "XML syntax error.")]
XmlSyntax { err: quick_xml::Error },
#[fail(display = "Malformed FIXML.")]
BadFixml,
}
impl From<io::Error> for Error {
fn from(err: io::Error) -> Self {
Error::Io { err }
}
}
impl From<str::Utf8Error> for Error {
fn from(err: str::Utf8Error) -> Self {
Error::Utf8 { err }
}
}
impl From<quick_xml::Error> for Error {
fn from(err: quick_xml::Error) -> Self {
Error::XmlSyntax { err }
}
}