error.rs

 1use std::io;
 2
 3use std::net::TcpStream;
 4
 5use openssl::ssl::HandshakeError;
 6use openssl::error::ErrorStack;
 7
 8use xml::reader::Error as XmlError;
 9
10#[derive(Debug)]
11pub enum Error {
12    XmlError(XmlError),
13    IoError(io::Error),
14    HandshakeError(HandshakeError<TcpStream>),
15    OpenSslErrorStack(ErrorStack),
16    StreamError,
17}
18
19impl From<XmlError> for Error {
20    fn from(err: XmlError) -> Error {
21        Error::XmlError(err)
22    }
23}
24
25impl From<io::Error> for Error {
26    fn from(err: io::Error) -> Error {
27        Error::IoError(err)
28    }
29}
30
31impl From<HandshakeError<TcpStream>> for Error {
32    fn from(err: HandshakeError<TcpStream>) -> Error {
33        Error::HandshakeError(err)
34    }
35}
36
37impl From<ErrorStack> for Error {
38    fn from(err: ErrorStack) -> Error {
39        Error::OpenSslErrorStack(err)
40    }
41}
42