[][src]Trait tokio::io::AsyncRead

pub trait AsyncRead {
    fn poll_read(
        self: Pin<&mut Self>,
        cx: &mut Context<'_>,
        buf: &mut ReadBuf<'_>
    ) -> Poll<Result<()>>; }

Reads bytes from a source.

This trait is analogous to the std::io::Read trait, but integrates with the asynchronous task system. In particular, the poll_read method, unlike Read::read, will automatically queue the current task for wakeup and return if data is not yet available, rather than blocking the calling thread.

Specifically, this means that the poll_read function will return one of the following:

This trait importantly means that the read method only works in the context of a future's task. The object may panic if used outside of a task.

Utilities for working with AsyncRead values are provided by AsyncReadExt.

Required methods

fn poll_read(
    self: Pin<&mut Self>,
    cx: &mut Context<'_>,
    buf: &mut ReadBuf<'_>
) -> Poll<Result<()>>
[src]

Attempts to read from the AsyncRead into buf.

On success, returns Poll::Ready(Ok(())) and places data in the unfilled portion of buf. If no data was read (buf.filled().len() is unchanged), it implies that EOF has been reached.

If no data is available for reading, the method returns Poll::Pending and arranges for the current task (via cx.waker()) to receive a notification when the object becomes readable or is closed.

Loading content...

Implementations on Foreign Types

impl<T: ?Sized + AsyncRead + Unpin> AsyncRead for Box<T>[src]

impl<T: ?Sized + AsyncRead + Unpin> AsyncRead for &mut T[src]

impl<P> AsyncRead for Pin<P> where
    P: DerefMut + Unpin,
    P::Target: AsyncRead
[src]

impl AsyncRead for &[u8][src]

impl<T: AsRef<[u8]> + Unpin> AsyncRead for Cursor<T>[src]

Loading content...

Implementors

impl AsyncRead for File[src]

impl AsyncRead for TcpStream[src]

impl AsyncRead for UnixStream[src]

impl AsyncRead for tokio::net::tcp::OwnedReadHalf[src]

impl AsyncRead for tokio::net::tcp::ReadHalf<'_>[src]

impl AsyncRead for tokio::net::unix::OwnedReadHalf[src]

impl AsyncRead for tokio::net::unix::ReadHalf<'_>[src]

Loading content...