error.rs

 1//! Provides an error type for this crate.
 2
 3use std::io;
 4
 5use std::convert::From;
 6
 7use xml::writer::Error as WriterError;
 8use xml::reader::Error as ReaderError;
 9
10/// An enum representing the possible errors.
11#[derive(Debug)]
12pub enum Error {
13    /// An io::Error.
14    IoError(io::Error),
15    /// An error in the xml-rs `EventWriter`.
16    XmlWriterError(WriterError),
17    /// An error in the xml-rs `EventReader`.
18    XmlReaderError(ReaderError),
19    /// The end of the document has been reached unexpectedly.
20    EndOfDocument,
21}
22
23impl From<io::Error> for Error {
24    fn from(err: io::Error) -> Error {
25        Error::IoError(err)
26    }
27}
28
29impl From<WriterError> for Error {
30    fn from(err: WriterError) -> Error {
31        Error::XmlWriterError(err)
32    }
33}
34
35impl From<ReaderError> for Error {
36    fn from(err: ReaderError) -> Error {
37        Error::XmlReaderError(err)
38    }
39}