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 | |
| parent | 9e8196ba875e4f8602a8c619fbbac08a1559602d (diff) | |
| download | rust-plist-da761e65e2f7b74afd2bdf1e07b19e038d990df6.tar.bz2 | |
Implement Iterator trait
| -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,  | 
