From 139c96123b04c2ed34d17cd0864ef5ae66676ef4 Mon Sep 17 00:00:00 2001 From: Edward Barnard Date: Tue, 22 Dec 2015 11:39:19 +0000 Subject: Rename StreamingParser to EventReader and Writer to EventWriter --- src/xml/mod.rs | 4 ++-- src/xml/reader.rs | 48 ++++++++++++++++++++++++------------------------ src/xml/writer.rs | 16 ++++++++-------- 3 files changed, 34 insertions(+), 34 deletions(-) (limited to 'src/xml') diff --git a/src/xml/mod.rs b/src/xml/mod.rs index 71c098e..b82450a 100644 --- a/src/xml/mod.rs +++ b/src/xml/mod.rs @@ -1,5 +1,5 @@ mod reader; mod writer; -pub use self::reader::StreamingParser; -pub use self::writer::Writer; \ No newline at end of file +pub use self::reader::EventReader; +pub use self::writer::EventWriter; \ No newline at end of file diff --git a/src/xml/reader.rs b/src/xml/reader.rs index abf671d..b8def8f 100644 --- a/src/xml/reader.rs +++ b/src/xml/reader.rs @@ -2,19 +2,19 @@ use chrono::{DateTime, UTC}; use rustc_serialize::base64::FromBase64; use std::io::Read; use std::str::FromStr; -use xml_rs::reader::{EventReader, ParserConfig, XmlEvent}; +use xml_rs::reader::{EventReader as XmlEventReader, ParserConfig, XmlEvent}; -use super::super::{ParserError, ParserResult, PlistEvent}; +use super::super::{ReadError, ReadResult, PlistEvent}; -pub struct StreamingParser { - xml_reader: EventReader, +pub struct EventReader { + xml_reader: XmlEventReader, queued_event: Option, element_stack: Vec, finished: bool } -impl StreamingParser { - pub fn new(reader: R) -> StreamingParser { +impl EventReader { + pub fn new(reader: R) -> EventReader { let config = ParserConfig { trim_whitespace: false, whitespace_to_characters: true, @@ -23,22 +23,22 @@ impl StreamingParser { coalesce_characters: true, }; - StreamingParser { - xml_reader: EventReader::new_with_config(reader, config), + EventReader { + xml_reader: XmlEventReader::new_with_config(reader, config), queued_event: None, element_stack: Vec::new(), finished: false } } - fn read_content(&mut self, f: F) -> ParserResult where F:FnOnce(String) -> ParserResult { + fn read_content(&mut self, f: F) -> ReadResult where F:FnOnce(String) -> ReadResult { match self.xml_reader.next() { Ok(XmlEvent::Characters(s)) => f(s), Ok(event @ XmlEvent::EndElement{..}) => { self.queued_event = Some(event); f("".to_owned()) }, - _ => Err(ParserError::InvalidData) + _ => Err(ReadError::InvalidData) } } @@ -50,7 +50,7 @@ impl StreamingParser { } } - fn read_next(&mut self) -> Option> { + fn read_next(&mut self) -> Option> { loop { match self.next_event() { Ok(XmlEvent::StartElement { name, .. }) => { @@ -68,7 +68,7 @@ impl StreamingParser { let s: String = s.replace(" ", "").replace("\t", ""); match FromBase64::from_base64(&s[..]) { Ok(b) => Ok(PlistEvent::DataValue(b)), - Err(_) => Err(ParserError::InvalidData) + Err(_) => Err(ReadError::InvalidData) } })), "date" => return Some(self.read_content(|s| { @@ -78,25 +78,25 @@ impl StreamingParser { "integer" => return Some(self.read_content(|s| { match FromStr::from_str(&s) { Ok(i) => Ok(PlistEvent::IntegerValue(i)), - Err(_) => Err(ParserError::InvalidData) + Err(_) => Err(ReadError::InvalidData) } })), "real" => return Some(self.read_content(|s| { match FromStr::from_str(&s) { Ok(f) => Ok(PlistEvent::RealValue(f)), - Err(_) => Err(ParserError::InvalidData) + Err(_) => Err(ReadError::InvalidData) } })), "string" => return Some(self.read_content(|s| Ok(PlistEvent::StringValue(s)))), - _ => return Some(Err(ParserError::InvalidData)) + _ => return Some(Err(ReadError::InvalidData)) } }, Ok(XmlEvent::EndElement { name, .. }) => { // Check the corrent element is being closed match self.element_stack.pop() { Some(ref open_name) if &name.local_name == open_name => (), - Some(ref _open_name) => return Some(Err(ParserError::InvalidData)), - None => return Some(Err(ParserError::InvalidData)) + Some(ref _open_name) => return Some(Err(ReadError::InvalidData)), + None => return Some(Err(ReadError::InvalidData)) } match &name.local_name[..] { @@ -109,20 +109,20 @@ impl StreamingParser { Ok(XmlEvent::EndDocument) => { match self.element_stack.is_empty() { true => return None, - false => return Some(Err(ParserError::UnexpectedEof)) + false => return Some(Err(ReadError::UnexpectedEof)) } }, - Err(_) => return Some(Err(ParserError::InvalidData)), + Err(_) => return Some(Err(ReadError::InvalidData)), _ => () } } } } -impl Iterator for StreamingParser { - type Item = ParserResult; +impl Iterator for EventReader { + type Item = ReadResult; - fn next(&mut self) -> Option> { + fn next(&mut self) -> Option> { if self.finished { None } else { @@ -155,7 +155,7 @@ mod tests { use PlistEvent::*; let reader = File::open(&Path::new("./tests/data/xml.plist")).unwrap(); - let streaming_parser = StreamingParser::new(reader); + let streaming_parser = EventReader::new(reader); let events: Vec = streaming_parser.map(|e| e.unwrap()).collect(); let comparison = &[ @@ -188,7 +188,7 @@ mod tests { #[test] fn bad_data() { let reader = File::open(&Path::new("./tests/data/xml_error.plist")).unwrap(); - let streaming_parser = StreamingParser::new(reader); + let streaming_parser = EventReader::new(reader); let events: Vec<_> = streaming_parser.collect(); assert!(events.last().unwrap().is_err()); diff --git a/src/xml/writer.rs b/src/xml/writer.rs index bd73b1e..ec2d9db 100644 --- a/src/xml/writer.rs +++ b/src/xml/writer.rs @@ -4,7 +4,7 @@ use std::io::Write; use xml_rs::attribute::Attribute; use xml_rs::name::Name; use xml_rs::namespace::Namespace; -use xml_rs::writer::{EventWriter, EmitterConfig}; +use xml_rs::writer::{EventWriter as XmlEventWriter, EmitterConfig}; use xml_rs::writer::events::XmlEvent as WriteXmlEvent; use {PlistEvent}; @@ -20,15 +20,15 @@ enum DictionaryState { ExpectValue } -pub struct Writer { - xml_writer: EventWriter, +pub struct EventWriter { + xml_writer: XmlEventWriter, stack: Vec, // Not very nice empty_namespace: Namespace } -impl Writer { - pub fn new(writer: W) -> Writer { +impl EventWriter { + pub fn new(writer: W) -> EventWriter { let config = EmitterConfig { line_separator: "\n".into(), indent_string: " ".into(), @@ -41,8 +41,8 @@ impl Writer { autopad_comments: true }; - Writer { - xml_writer: EventWriter::new_with_config(writer, config), + EventWriter { + xml_writer: XmlEventWriter::new_with_config(writer, config), stack: Vec::new(), empty_namespace: Namespace::empty() } @@ -211,7 +211,7 @@ mod tests { let mut cursor = Cursor::new(Vec::new()); { - let mut plist_w = Writer::new(&mut cursor); + let mut plist_w = EventWriter::new(&mut cursor); for item in plist { plist_w.write(item).unwrap(); -- cgit v1.2.3