diff options
Diffstat (limited to 'src/xml')
| -rw-r--r-- | src/xml/reader.rs | 7 | ||||
| -rw-r--r-- | src/xml/writer.rs | 11 |
2 files changed, 17 insertions, 1 deletions
diff --git a/src/xml/reader.rs b/src/xml/reader.rs index 9f57ab4..82d1be5 100644 --- a/src/xml/reader.rs +++ b/src/xml/reader.rs @@ -1,4 +1,5 @@ use chrono::{DateTime, UTC}; +use chrono::format::ParseError as ChronoParseError; use rustc_serialize::base64::FromBase64; use std::io::Read; use std::str::FromStr; @@ -6,6 +7,12 @@ use xml_rs::reader::{EventReader as XmlEventReader, ParserConfig, XmlEvent}; use {Error, Result, PlistEvent}; +impl From<ChronoParseError> for Error { + fn from(_: ChronoParseError) -> Error { + Error::InvalidData + } +} + pub struct EventReader<R: Read> { xml_reader: XmlEventReader<R>, queued_event: Option<XmlEvent>, diff --git a/src/xml/writer.rs b/src/xml/writer.rs index 2442658..d165f2c 100644 --- a/src/xml/writer.rs +++ b/src/xml/writer.rs @@ -4,11 +4,20 @@ use std::io::Write; use xml_rs::attribute::Attribute; use xml_rs::name::Name; use xml_rs::namespace::Namespace; -use xml_rs::writer::{EventWriter as XmlEventWriter, EmitterConfig}; +use xml_rs::writer::{Error as XmlWriterError, EventWriter as XmlEventWriter, EmitterConfig}; use xml_rs::writer::events::XmlEvent as WriteXmlEvent; use {Error, EventWriter as PlistEventWriter, PlistEvent, Result}; +impl From<XmlWriterError> for Error { + fn from(err: XmlWriterError) -> Error { + match err { + XmlWriterError::Io(err) => Error::Io(err), + _ => Error::InvalidData, + } + } +} + enum Element { Dictionary(DictionaryState), Array, |
