diff options
Diffstat (limited to 'src/reader.rs')
| -rw-r--r-- | src/reader.rs | 17 |
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, |
