Module futures_util::io

source ·
Expand description

Asynchronous I/O.

This module is the asynchronous version of std::io. It defines four traits, AsyncRead, AsyncWrite, AsyncSeek, and AsyncBufRead, which mirror the Read, Write, Seek, and BufRead traits of the standard library. However, these traits integrate with the asynchronous task system, so that if an I/O object isn’t ready for reading (or writing), the thread is not blocked, and instead the current task is queued to be woken when I/O is ready.

In addition, the AsyncReadExt, AsyncWriteExt, AsyncSeekExt, and AsyncBufReadExt extension traits offer a variety of useful combinators for operating with asynchronous I/O objects, including ways to work with them using futures, streams and sinks.

This module is only available when the std feature of this library is activated, and it is activated by default.

Re-exports

pub use std::io::Error;
pub use std::io::ErrorKind;
pub use std::io::IoSlice;
pub use std::io::IoSliceMut;
pub use std::io::Result;
pub use std::io::SeekFrom;

Structs

A simple wrapper type which allows types which implement only implement std::io::Read or std::io::Write to be used in contexts which expect an AsyncRead or AsyncWrite.
The BufReader struct adds buffering to any reader.
Wraps a writer and buffers its output.
Reader for the chain method.
Future for the close method.
Future for the copy() function.
Future for the copy_buf() function.
Future for the [copy_buf()] function.
A Cursor wraps an in-memory buffer and provides it with a AsyncSeek implementation.
Reader for the empty() function.
Future for the fill_buf method.
Future for the flush method.
Sink for the into_sink method.
Wrap a writer, like BufWriter does, but prioritizes buffering lines
Stream for the lines method.
Future for the read method.
Future for the read_exact method.
The readable half of an object returned from AsyncRead::split.
Future for the read_line method.
Future for the read_to_end method.
Future for the read_to_string method.
Future for the read_until method.
Future for the read_vectored method.
Reader for the repeat() function.
Error indicating a ReadHalf<T> and WriteHalf<T> were not two halves of a AsyncRead + AsyncWrite, and thus could not be reunited.
Future for the seek method.
Writer for the sink() function.
Reader for the take method.
A owned window around an underlying buffer.
Future for the write method.
Future for the write_all method.
The writable half of an object returned from AsyncRead::split.
Future for the write_vectored method.

Traits

Read bytes asynchronously.
An extension trait which adds utility methods to AsyncBufRead types.
Read bytes asynchronously.
An extension trait which adds utility methods to AsyncRead types.
Seek bytes asynchronously.
An extension trait which adds utility methods to AsyncSeek types.
Write bytes asynchronously.
An extension trait which adds utility methods to AsyncWrite types.

Functions

Creates a future which copies all the bytes from one object to another.
Creates a future which copies all the bytes from one object to another.
Creates a future which copies all the bytes from one object to another, with its AbortHandle.
Constructs a new handle to an empty reader.
Creates an instance of a reader that infinitely repeats one byte.
Creates an instance of a writer which will successfully consume all data.