diff --git a/src/format/context/input.rs b/src/format/context/input.rs index 5d4f4161..dc0acdf0 100644 --- a/src/format/context/input.rs +++ b/src/format/context/input.rs @@ -163,7 +163,7 @@ impl<'a> PacketIter<'a> { } impl<'a> Iterator for PacketIter<'a> { - type Item = (Stream<'a>, Packet); + type Item = Result<(Stream<'a>, Packet), Error>; fn next(&mut self) -> Option<::Item> { let mut packet = Packet::empty(); @@ -171,15 +171,15 @@ impl<'a> Iterator for PacketIter<'a> { loop { match packet.read(self.context) { Ok(..) => unsafe { - return Some(( + return Some(Ok(( Stream::wrap(mem::transmute_copy(&self.context), packet.stream()), packet, - )); + ))); }, Err(Error::Eof) => return None, - Err(..) => (), + Err(err) => return Some(Err(err)), } } }