xmpp-rs/src/error.rs
Bastien Orivel 9cec9fce9b Replace xml-rs by quick_xml
quick_xml is way faster than xml-rs

Here is an example with a quick atom parser:
    With xml-rs:
        test parse_factorio_atom ... bench:   3,295,678 ns/iter (+/- 165,851)
    With quick_xml:
        test parse_factorio_atom ... bench:     203,215 ns/iter (+/- 13,485)

Unfortunately I had to break the API for this change to happen.
* Element::from_reader now takes `R: BufRead` instead of `R: Read`
* Element::write_to now takes `W: io::Write` instead of `EventWriter<W: Write>`

This migration also allow us to have a write_to function which assumes
we're already in a given namespace (see `write_to_in_namespace`).
2017-06-10 17:17:19 +02:00

30 lines
970 B
Rust

//! Provides an error type for this crate.
use std::convert::From;
error_chain! {
foreign_links {
XmlError(::quick_xml::errors::Error)
/// An error from quick_xml.
;
Utf8Error(::std::str::Utf8Error)
/// An UTF-8 conversion error.
;
IoError(::std::io::Error)
/// An I/O error, from std::io.
;
}
errors {
/// An error which is returned when the end of the document was reached prematurely.
EndOfDocument {
description("the end of the document has been reached prematurely")
display("the end of the document has been reached prematurely")
}
/// An error which is returned when an element is closed when it shouldn't be
InvalidElementClosed {
description("The XML is invalid, an element was wrongly closed")
display("the XML is invalid, an element was wrongly closed")
}
}
}