diff options
| author | Edward Barnard | 2015-08-04 15:54:47 +0100 |
|---|---|---|
| committer | Edward Barnard | 2015-08-04 15:54:47 +0100 |
| commit | da761e65e2f7b74afd2bdf1e07b19e038d990df6 (patch) | |
| tree | d3845c0b142116aec59203939f71eae50c5f9827 /src | |
| parent | 9e8196ba875e4f8602a8c619fbbac08a1559602d (diff) | |
| download | rust-plist-da761e65e2f7b74afd2bdf1e07b19e038d990df6.tar.bz2 | |
Implement Iterator trait
Diffstat (limited to 'src')
| -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, |
