use crate::io;
const CHUNK_SIZE: usize = 2048;
pub trait AsyncRead {
async fn read(&mut self, buf: &mut [u8]) -> io::Result<usize>;
async fn read_to_end(&mut self, buf: &mut Vec<u8>) -> io::Result<usize> {
let mut n = 0;
loop {
if buf.len() == n {
buf.resize(n + CHUNK_SIZE, 0u8);
}
let len = self.read(&mut buf[n..]).await?;
if len == 0 {
buf.truncate(n);
return Ok(n);
}
n += len;
}
}
}