Name Description Size
empty.rs 1131
iter.rs 1475
lib.rs Stream utilities for Tokio. A `Stream` is an asynchronous sequence of values. It can be thought of as an asynchronous version of the standard library's `Iterator` trait. This crate provides helpers to work with them. For examples of usage and a more in-depth description of streams you can also refer to the [streams tutorial](https://tokio.rs/tokio/tutorial/streams) on the tokio website. # Iterating over a Stream Due to similarities with the standard library's `Iterator` trait, some new users may assume that they can use `for in` syntax to iterate over a `Stream`, but this is unfortunately not possible. Instead, you can use a `while let` loop as follows: ```rust use tokio_stream::{self as stream, StreamExt}; #[tokio::main] async fn main() { let mut stream = stream::iter(vec![0, 1, 2]); while let Some(value) = stream.next().await { println!("Got {}", value); } } ``` # Returning a Stream from a function A common way to stream values from a function is to pass in the sender half of a channel and use the receiver as the stream. This requires awaiting both futures to ensure progress is made. Another alternative is the [async-stream] crate, which contains macros that provide a `yield` keyword and allow you to return an `impl Stream`. [async-stream]: https://docs.rs/async-stream # Conversion to and from AsyncRead/AsyncWrite It is often desirable to convert a `Stream` into an [`AsyncRead`], especially when dealing with plaintext formats streamed over the network. The opposite conversion from an [`AsyncRead`] into a `Stream` is also another commonly required feature. To enable these conversions, [`tokio-util`] provides the [`StreamReader`] and [`ReaderStream`] types when the io feature is enabled. [`tokio-util`]: https://docs.rs/tokio-util/0.4/tokio_util/codec/index.html [`tokio::io`]: https://docs.rs/tokio/1.0/tokio/io/index.html [`AsyncRead`]: https://docs.rs/tokio/1.0/tokio/io/trait.AsyncRead.html [`AsyncWrite`]: https://docs.rs/tokio/1.0/tokio/io/trait.AsyncWrite.html [`ReaderStream`]: https://docs.rs/tokio-util/0.4/tokio_util/io/struct.ReaderStream.html [`StreamReader`]: https://docs.rs/tokio-util/0.4/tokio_util/io/struct.StreamReader.html 3238
macros.rs 1383
once.rs 1191
pending.rs 1280
stream_ext
stream_ext.rs 34505
stream_map.rs 20137
wrappers
wrappers.rs Wrappers for Tokio types that implement `Stream`. 1149