X-Git-Url: https://git.nihav.org/?a=blobdiff_plain;f=nihav-core%2Fsrc%2Fio%2Fbyteio.rs;h=61b8816f2dd78ae2d7bc0db5f1f2bcad3fa244e8;hb=e6aaad5c5273cd814b5748b7faf3751835a37217;hp=2bac1900967b74545e411ccf0d8c5f886c07c775;hpb=52f954a3961a683e1b317c63067063082501ce3d;p=nihav.git diff --git a/nihav-core/src/io/byteio.rs b/nihav-core/src/io/byteio.rs index 2bac190..61b8816 100644 --- a/nihav-core/src/io/byteio.rs +++ b/nihav-core/src/io/byteio.rs @@ -624,7 +624,7 @@ impl ByteIO for FileReader { } fn tell(&mut self) -> u64 { - self.file.seek(SeekFrom::Current(0)).unwrap() + self.file.stream_position().unwrap() } fn seek(&mut self, pos: SeekFrom) -> ByteIOResult { @@ -681,7 +681,7 @@ impl BoundedFileReader { /// Destroys the reader and releases the reader resource for a further use. pub fn finish(self) -> Box { self.file } fn real_tell(&mut self) -> u64 { - self.file.seek(SeekFrom::Current(0)).unwrap() + self.file.stream_position().unwrap() } fn max_read_len(&mut self, len: usize) -> usize { if let Some(epos) = self.end { @@ -753,14 +753,13 @@ impl ByteIO for BoundedFileReader { if ret.is_err() { return Err(ByteIOError::ReadError); } let sz = ret.unwrap(); if sz < len { - if let Err(_err) = self.file.read(&mut buf[sz..][..1]) { - self.eof = true; - if sz == 0 { - return Err(ByteIOError::EOF); - } - } else { + if let Ok(1) = self.file.read(&mut buf[sz..][..1]) { return Ok(sz + 1); } + self.eof = true; + if sz == 0 { + return Err(ByteIOError::EOF); + } } Ok(sz) } @@ -780,7 +779,7 @@ impl ByteIO for BoundedFileReader { } fn tell(&mut self) -> u64 { - self.file.seek(SeekFrom::Current(0)).unwrap() - self.start + self.file.stream_position().unwrap() - self.start } fn seek(&mut self, pos: SeekFrom) -> ByteIOResult { @@ -1189,7 +1188,7 @@ impl ByteIO for FileWriter { } fn tell(&mut self) -> u64 { - self.file.seek(SeekFrom::Current(0)).unwrap() + self.file.stream_position().unwrap() } fn seek(&mut self, pos: SeekFrom) -> ByteIOResult {