diff options
| author | Edward Barnard | 2015-09-26 15:45:23 +0100 |
|---|---|---|
| committer | Edward Barnard | 2015-09-26 15:45:23 +0100 |
| commit | d02734fb6d030c028e186ceb5508367c5ab84f7f (patch) | |
| tree | 92978e1793356e83d3d2706df9040b36e5db0773 /src/xml | |
| parent | 3964f2a14cba647f6e69d70b3c3cf57a2527e5a5 (diff) | |
| download | rust-plist-d02734fb6d030c028e186ceb5508367c5ab84f7f.tar.bz2 | |
Fuse xml reader on error
Diffstat (limited to 'src/xml')
| -rw-r--r-- | src/xml/reader.rs | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/xml/reader.rs b/src/xml/reader.rs index 091775e..b372e8e 100644 --- a/src/xml/reader.rs +++ b/src/xml/reader.rs @@ -51,7 +51,7 @@ impl<R: Read> StreamingParser<R> { } } - fn next_inner(&mut self) -> Option<ParserResult<PlistEvent>> { + fn read_next(&mut self) -> Option<ParserResult<PlistEvent>> { loop { match self.next_event() { XmlEvent::StartElement { name, .. } => { @@ -127,16 +127,16 @@ impl<R: Read> Iterator for StreamingParser<R> { if self.finished { None } else { - match self.next_inner() { - None => { + match self.read_next() { + Some(Ok(event)) => Some(Ok(event)), + Some(Err(err)) => { self.finished = true; - None + Some(Err(err)) }, - ret @ Some(Err(_)) => { + None => { self.finished = true; - ret + None } - ret => ret } } } |
