Trait AsyncRead
pub trait AsyncRead {
// Required method
async fn read<B>(&mut self, buf: B) -> BufResult<usize, B>
where B: IoBufMut;
// Provided method
async fn read_vectored<V>(&mut self, buf: V) -> BufResult<usize, V>
where V: IoVectoredBufMut { ... }
}io only.Expand description
AsyncRead
Async read with a ownership of a buffer
Required Methods§
async fn read<B>(&mut self, buf: B) -> BufResult<usize, B>where
B: IoBufMut,
async fn read<B>(&mut self, buf: B) -> BufResult<usize, B>where
B: IoBufMut,
Read some bytes from this source into the IoBufMut buffer and return
a BufResult, consisting of the buffer and a usize indicating
how many bytes were read.
§Caution
- This function read data to the beginning of the buffer; that is,
all existing data in the buffer will be overwritten. To read data to
the end of the buffer, use
AsyncReadExt::append. - Implementor MUST update the buffer init via
SetLen::set_lenafter reading, and no further update should be made by caller.
Provided Methods§
async fn read_vectored<V>(&mut self, buf: V) -> BufResult<usize, V>where
V: IoVectoredBufMut,
async fn read_vectored<V>(&mut self, buf: V) -> BufResult<usize, V>where
V: IoVectoredBufMut,
Like read, except that it reads into a type implements
IoVectoredBufMut.
The default implementation will read only to first buffer in buf with
non-zero capacity and return, meaning it’s possible and likely that not
all buffer space is filled. If guaranteed full read is desired,
it is recommended to use AsyncReadExt::read_vectored_exact instead.
§Caution
Implementor MUST update the buffer init via
SetLen::set_len after reading.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.