Files
GopherGate/target/doc/tokio/stream/index.html
2026-02-26 12:00:21 -05:00

26 lines
5.5 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Due to the `Stream` traits inclusion in `std` landing later than Tokios 1.0 release, most of the Tokio stream utilities have been moved into the `tokio-stream` crate."><title>tokio::stream - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="tokio" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">Module stream</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../tokio/index.html">tokio</a><span class="version">1.49.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module stream</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#why-was-stream-not-included-in-tokio-10" title="Why was `Stream` not included in Tokio 1.0?">Why was <code>Stream</code> not included in Tokio 1.0?</a></li><li><a href="#example" title="Example">Example</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate tokio</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">tokio</a></div><h1>Module <span>stream</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/tokio/lib.rs.html#640">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Due to the <code>Stream</code> traits inclusion in <code>std</code> landing later than Tokios 1.0
release, most of the Tokio stream utilities have been moved into the <a href="https://docs.rs/tokio-stream"><code>tokio-stream</code></a>
crate.</p>
<h2 id="why-was-stream-not-included-in-tokio-10"><a class="doc-anchor" href="#why-was-stream-not-included-in-tokio-10">§</a>Why was <code>Stream</code> not included in Tokio 1.0?</h2>
<p>Originally, we had planned to ship Tokio 1.0 with a stable <code>Stream</code> type
but unfortunately the <a href="https://github.com/rust-lang/rfcs/pull/2996">RFC</a> had not been merged in time for <code>Stream</code> to
reach <code>std</code> on a stable compiler in time for the 1.0 release of Tokio. For
this reason, the team has decided to move all <code>Stream</code> based utilities to
the <a href="https://docs.rs/tokio-stream"><code>tokio-stream</code></a> crate. While this is not ideal, once <code>Stream</code> has made
it into the standard library and the <code>MSRV</code> period has passed, we will implement
stream for our different types.</p>
<p>While this may seem unfortunate, not all is lost as you can get much of the
<code>Stream</code> support with <code>async/await</code> and <code>while let</code> loops. It is also possible
to create a <code>impl Stream</code> from <code>async fn</code> using the <a href="https://docs.rs/async-stream"><code>async-stream</code></a> crate.</p>
<h2 id="example"><a class="doc-anchor" href="#example">§</a>Example</h2>
<p>Convert a <a href="../sync/mpsc/struct.Receiver.html" title="struct tokio::sync::mpsc::Receiver"><code>sync::mpsc::Receiver</code></a> to an <code>impl Stream</code>.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>tokio::sync::mpsc;
<span class="kw">let </span>(tx, <span class="kw-2">mut </span>rx) = mpsc::channel::&lt;usize&gt;(<span class="number">16</span>);
<span class="kw">let </span>stream = <span class="macro">async_stream::stream!</span> {
<span class="kw">while let </span><span class="prelude-val">Some</span>(item) = rx.recv().<span class="kw">await </span>{
<span class="kw">yield </span>item;
}
};</code></pre></div></div></details></section></div></main></body></html>