2
0
Fork 1
mirror of https://github.com/async-rs/async-std.git synced 2025-01-16 10:49:55 +00:00

AsyncBufRead for Cursor

Signed-off-by: Yoshua Wuyts <yoshuawuyts@gmail.com>
This commit is contained in:
Yoshua Wuyts 2019-09-10 14:20:12 +02:00
parent 0bc39e6e6c
commit a5b0acb378
No known key found for this signature in database
GPG key ID: 24EA8164F96777ED

View file

@ -1,4 +1,4 @@
use futures_io::{AsyncRead, AsyncSeek, AsyncWrite};
use futures_io::{AsyncBufRead, AsyncRead, AsyncSeek, AsyncWrite};
use std::io::{self, IoSlice, IoSliceMut, SeekFrom};
use std::pin::Pin;
@ -182,21 +182,18 @@ where
}
}
// impl<T> AsyncBufRead for Cursor<T>
// where
// T: AsRef<[u8]> + Unpin,
// {
// fn poll_fill_buf(mut self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<io::Result<&[u8]>> {
// // let amt = cmp::min(self.position(), self.as_ref().len() as u64);
// // Poll::Ready(Ok(&self.inner.as_ref()[(amt as usize)..]))
// let res = io::BufRead::fill_buf(&mut self.inner);
// Poll::Ready(res)
// }
impl<T> AsyncBufRead for Cursor<T>
where
T: AsRef<[u8]> + Unpin,
{
fn poll_fill_buf(self: Pin<&mut Self>, _: &mut Context<'_>) -> Poll<io::Result<&[u8]>> {
Poll::Ready(io::BufRead::fill_buf(&mut self.get_mut().inner))
}
// fn consume(mut self: Pin<&mut Self>, amt: usize) {
// io::BufRead::consume(&mut self.inner, amt)
// }
// }
fn consume(mut self: Pin<&mut Self>, amt: usize) {
io::BufRead::consume(&mut self.inner, amt)
}
}
impl AsyncWrite for Cursor<&mut [u8]> {
fn poll_write(