aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/reader.rs17
1 files changed, 7 insertions, 10 deletions
diff --git a/src/reader.rs b/src/reader.rs
index 03942d0..64e666e 100644
--- a/src/reader.rs
+++ b/src/reader.rs
@@ -49,8 +49,12 @@ impl<R: Read> EventReader<R> {
_ => PlistEvent::Error(())
}
}
+}
+
+impl<R: Read> Iterator for EventReader<R> {
+ type Item = PlistEvent;
- pub fn next(&mut self) -> Option<PlistEvent> {
+ fn next(&mut self) -> Option<PlistEvent> {
loop {
let first_event = self.xml_reader.next();
match first_event {
@@ -107,15 +111,8 @@ mod tests {
use reader::PlistEvent::*;
let reader = File::open(&Path::new("./tests/data/simple.plist")).unwrap();
- let mut event_reader = EventReader::new(reader);
- let mut events = Vec::new();
- loop {
- if let Some(event) = event_reader.next() {
- events.push(event);
- } else {
- break;
- }
- }
+ let event_reader = EventReader::new(reader);
+ let events: Vec<PlistEvent> = event_reader.collect();
let comparison = &[
StartDictionary,