-#![allow(unused_variables)]
use endian::{Endian, Parse, ToBytes};
use flate2::read::ZlibDecoder;
use num::Integer;
use thiserror::Error;
pub mod endian;
+pub mod sack;
#[derive(Error, Debug)]
pub enum Error {
}
trait State {
+ #[allow(clippy::type_complexity)]
fn read(self: Box<Self>) -> Result<Option<(Record, Box<dyn State>)>, Error>;
}
R: Read + Seek,
{
fn seek(&mut self, pos: SeekFrom) -> Result<u64, IoError> {
- unimplemented!();
+ self.reader.as_mut().unwrap().get_mut().seek(pos)
}
}
match self.state.take()?.read() {
Ok(Some((record, next_state))) => {
self.state = Some(next_state);
- return Some(Ok(record));
+ Some(Ok(record))
}
- Ok(None) => return None,
- Err(error) => return Some(Err(error)),
+ Ok(None) => None,
+ Err(error) => Some(Err(error)),
}
}
}