diff options
| author | Edward Barnard | 2015-12-30 17:21:28 +0100 |
|---|---|---|
| committer | Edward Barnard | 2015-12-30 17:21:28 +0100 |
| commit | bca7a4a2335a10c6fb86702593fb8ebbdd5d6c40 (patch) | |
| tree | 787fd7b846a83e641c3e2cd2fcc7aad2ca008b81 /src/xml | |
| parent | 240d0ceeb7fa6d961dcae0cd3fe1682bb3bed891 (diff) | |
| download | rust-plist-bca7a4a2335a10c6fb86702593fb8ebbdd5d6c40.tar.bz2 | |
Improve error handling
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, |
