Skip to main content

AsyncRead

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 { ... }
}
Available on crate feature 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,

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_len after reading, and no further update should be made by caller.

Provided Methods§

async fn read_vectored<V>(&mut self, buf: V) -> BufResult<usize, V>

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".

Implementations on Foreign Types§

§

impl AsyncRead for &[u8]

§

async fn read<T>(&mut self, buf: T) -> BufResult<usize, T>
where T: IoBufMut,

§

async fn read_vectored<T>(&mut self, buf: T) -> BufResult<usize, T>

§

impl<A> AsyncRead for &mut A
where A: AsyncRead + ?Sized,

§

async fn read<T>(&mut self, buf: T) -> BufResult<usize, T>
where T: IoBufMut,

§

async fn read_vectored<T>(&mut self, buf: T) -> BufResult<usize, T>

Implementors§

Source§

impl AsyncRead for &Receiver

Source§

impl AsyncRead for &Stdin

Source§

impl AsyncRead for &TcpStream

Source§

impl AsyncRead for &UnixStream

Source§

impl AsyncRead for ChildStderr

Source§

impl AsyncRead for ChildStdout

§

impl AsyncRead for Null

Source§

impl AsyncRead for Receiver

Source§

impl AsyncRead for RecvStream

§

impl AsyncRead for Repeat

Source§

impl AsyncRead for Stdin

Source§

impl AsyncRead for TcpStream

Source§

impl AsyncRead for UnixStream

Source§

impl<'a, T> AsyncRead for compio::net::ReadHalf<'a, T>

§

impl<A> AsyncRead for Cursor<A>
where A: AsyncReadAt,

§

impl<R, A> AsyncRead for Box<R, A>
where R: AsyncRead + ?Sized, A: Allocator,

§

impl<R> AsyncRead for BufReader<R>
where R: AsyncRead,

§

impl<R> AsyncRead for ReadOnly<R>
where R: AsyncRead,

§

impl<R> AsyncRead for Take<R>
where R: AsyncRead,

Source§

impl<T> AsyncRead for &AsyncFd<T>
where T: AsFd + 'static,

Source§

impl<T> AsyncRead for AsyncFd<T>
where T: AsFd + 'static,

§

impl<T> AsyncRead for compio::io::util::split::ReadHalf<T>
where T: AsyncRead,

§

impl<W> AsyncRead for BufWriter<W>
where W: AsyncRead + AsyncWrite,