fix s9pk reader pos update

This commit is contained in:
Aiden McClelland
2022-02-09 12:50:24 -07:00
committed by Aiden McClelland
parent 3f096bae60
commit c413814ac4

View File

@@ -31,7 +31,7 @@ pub struct ReadHandle<'a, R: AsyncRead + AsyncSeek + Unpin = File> {
impl<'a, R: AsyncRead + AsyncSeek + Unpin> ReadHandle<'a, R> { impl<'a, R: AsyncRead + AsyncSeek + Unpin> ReadHandle<'a, R> {
pub async fn to_vec(mut self) -> std::io::Result<Vec<u8>> { pub async fn to_vec(mut self) -> std::io::Result<Vec<u8>> {
let mut buf = vec![0; self.rdr.limit() as usize]; let mut buf = vec![0; self.rdr.limit() as usize];
self.rdr.read_exact(&mut buf).await?; self.read_exact(&mut buf).await?;
Ok(buf) Ok(buf)
} }
} }
@@ -44,10 +44,9 @@ impl<'a, R: AsyncRead + AsyncSeek + Unpin> AsyncRead for ReadHandle<'a, R> {
let start = buf.filled().len(); let start = buf.filled().len();
let this = self.project(); let this = self.project();
let pos = this.pos; let pos = this.pos;
AsyncRead::poll_read(this.rdr, cx, buf).map(|res| { let res = AsyncRead::poll_read(this.rdr, cx, buf);
**pos += (buf.filled().len() - start) as u64; **pos += (buf.filled().len() - start) as u64;
res res
})
} }
} }