blob: 58eb32f1825c3883dbe274fd5b9ab2564e9800af [file] [log] [blame]
<!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="Stream for the `take_until` method."><meta name="keywords" content="rust, rustlang, rust-lang, TakeUntil"><title>TakeUntil in futures_util::stream - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../futures_util/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../futures_util/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">TakeUntil</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.get_mut">get_mut</a></li><li><a href="#method.get_pin_mut">get_pin_mut</a></li><li><a href="#method.get_ref">get_ref</a></li><li><a href="#method.into_inner">into_inner</a></li><li><a href="#method.is_stopped">is_stopped</a></li><li><a href="#method.take_future">take_future</a></li><li><a href="#method.take_result">take_result</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-Debug-for-TakeUntil%3CSt%2C%20Fut%3E">Debug</a></li><li><a href="#impl-FusedStream-for-TakeUntil%3CSt%2C%20Fut%3E">FusedStream</a></li><li><a href="#impl-Sink%3CItem%3E-for-TakeUntil%3CS%2C%20Fut%3E">Sink&lt;Item&gt;</a></li><li><a href="#impl-Stream-for-TakeUntil%3CSt%2C%20Fut%3E">Stream</a></li><li><a href="#impl-Unpin-for-TakeUntil%3CSt%2C%20Fut%3E">Unpin</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-TakeUntil%3CSt%2C%20Fut%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-TakeUntil%3CSt%2C%20Fut%3E">Send</a></li><li><a href="#impl-Sync-for-TakeUntil%3CSt%2C%20Fut%3E">Sync</a></li><li><a href="#impl-UnwindSafe-for-TakeUntil%3CSt%2C%20Fut%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-TakeUntil%3CSt%2C%20Fut%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E">Into&lt;U&gt;</a></li><li><a href="#impl-SinkExt%3CItem%3E-for-TakeUntil%3CSt%2C%20Fut%3E">SinkExt&lt;Item&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E">TryInto&lt;U&gt;</a></li><li><a href="#impl-TryStream-for-TakeUntil%3CSt%2C%20Fut%3E">TryStream</a></li></ul></section><h2><a href="index.html">In futures_util::stream</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">futures_util</a>::<wbr><a href="index.html">stream</a>::<wbr><a class="struct" href="#">TakeUntil</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/futures_util/stream/stream/take_until.rs.html#13-28">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct TakeUntil&lt;St:&nbsp;<a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>, Fut:&nbsp;Future&gt; { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Stream for the <a href="trait.StreamExt.html#method.take_until"><code>take_until</code></a> method.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#41-109">source</a><a href="#impl-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;St, Fut&gt; <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: Future,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_ref" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#50">source</a><h4 class="code-header">pub fn <a href="#method.get_ref" class="fnname">get_ref</a>(&amp;self) -&gt; &amp;St</h4></section></summary><div class="docblock"><p>Acquires a reference to the underlying sink or stream that this combinator is
pulling from.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_mut" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#50">source</a><h4 class="code-header">pub fn <a href="#method.get_mut" class="fnname">get_mut</a>(&amp;mut self) -&gt; &amp;mut St</h4></section></summary><div class="docblock"><p>Acquires a mutable reference to the underlying sink or stream that this
combinator is pulling from.</p>
<p>Note that care must be taken to avoid tampering with the state of the
sink or stream which may otherwise confuse this combinator.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.get_pin_mut" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#50">source</a><h4 class="code-header">pub fn <a href="#method.get_pin_mut" class="fnname">get_pin_mut</a>(self: Pin&lt;&amp;mut Self&gt;) -&gt; Pin&lt;&amp;mut St&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for Pin&lt;P&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;P&gt; Future for Pin&lt;P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: DerefMut,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;P as Deref&gt;::Target: Future,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = &lt;&lt;P as Deref&gt;::Target as Future&gt;::Output;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Acquires a pinned mutable reference to the underlying sink or stream that this
combinator is pulling from.</p>
<p>Note that care must be taken to avoid tampering with the state of the
sink or stream which may otherwise confuse this combinator.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_inner" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#50">source</a><h4 class="code-header">pub fn <a href="#method.into_inner" class="fnname">into_inner</a>(self) -&gt; St</h4></section></summary><div class="docblock"><p>Consumes this combinator, returning the underlying sink or stream.</p>
<p>Note that this may discard intermediate state of this combinator, so
care should be taken to avoid losing resources when this is called.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take_future" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#56-62">source</a><h4 class="code-header">pub fn <a href="#method.take_future" class="fnname">take_future</a>(&amp;mut self) -&gt; Option&lt;Fut&gt;</h4></section></summary><div class="docblock"><p>Extract the stopping future out of the combinator.
The future is returned only if it isn’t resolved yet, ie. if the stream isn’t stopped yet.
Taking out the future means the combinator will be yielding
elements from the wrapped stream without ever stopping it.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take_result" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#100-102">source</a><h4 class="code-header">pub fn <a href="#method.take_result" class="fnname">take_result</a>(&amp;mut self) -&gt; Option&lt;Fut::Output&gt;</h4></section></summary><div class="docblock"><p>Once the stopping future is resolved, this method can be used
to extract the value returned by the stopping future.</p>
<p>This may be used to retrieve arbitrary data from the stopping
future, for example a reason why the stream was stopped.</p>
<p>This method will return <code>None</code> if the future isn’t resolved yet,
or if the result was already taken out.</p>
<h5 id="examples"><a href="#examples">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>futures::future;
<span class="kw">use </span>futures::stream::{<span class="self">self</span>, StreamExt};
<span class="kw">use </span>futures::task::Poll;
<span class="kw">let </span>stream = stream::iter(<span class="number">1</span>..=<span class="number">10</span>);
<span class="kw">let </span><span class="kw-2">mut </span>i = <span class="number">0</span>;
<span class="kw">let </span>stop_fut = future::poll_fn(|_cx| {
i += <span class="number">1</span>;
<span class="kw">if </span>i &lt;= <span class="number">5 </span>{
Poll::Pending
} <span class="kw">else </span>{
Poll::Ready(<span class="string">&quot;reason&quot;</span>)
}
});
<span class="kw">let </span><span class="kw-2">mut </span>stream = stream.take_until(stop_fut);
<span class="kw">let _ </span>= stream.by_ref().collect::&lt;Vec&lt;<span class="kw">_</span>&gt;&gt;().<span class="kw">await</span>;
<span class="kw">let </span>result = stream.take_result().unwrap();
<span class="macro">assert_eq!</span>(result, <span class="string">&quot;reason&quot;</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_stopped" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#106-108">source</a><h4 class="code-header">pub fn <a href="#method.is_stopped" class="fnname">is_stopped</a>(&amp;self) -&gt; bool</h4></section></summary><div class="docblock"><p>Whether the stream was stopped yet by the stopping future
being resolved.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#30-39">source</a><a href="#impl-Debug-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;St, Fut&gt; Debug for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a> + Debug,<br>&nbsp;&nbsp;&nbsp;&nbsp;St::<a class="associatedtype" href="trait.Stream.html#associatedtype.Item" title="type futures_util::stream::Stream::Item">Item</a>: Debug,<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: Future + Debug,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#36-38">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt</a>(&amp;self, f: &amp;mut Formatter&lt;'_&gt;) -&gt; Result</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-FusedStream-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#150-158">source</a><a href="#impl-FusedStream-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;St, Fut&gt; <a class="trait" href="trait.FusedStream.html" title="trait futures_util::stream::FusedStream">FusedStream</a> for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: Future,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_terminated" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#155-157">source</a><a href="#method.is_terminated" class="anchor"></a><h4 class="code-header">fn <a href="trait.FusedStream.html#tymethod.is_terminated" class="fnname">is_terminated</a>(&amp;self) -&gt; bool</h4></section></summary><div class='docblock'>Returns <code>true</code> if the stream should no longer be polled.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Sink%3CItem%3E-for-TakeUntil%3CS%2C%20Fut%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#162-170">source</a><a href="#impl-Sink%3CItem%3E-for-TakeUntil%3CS%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;S, Fut, Item&gt; <a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item&gt; for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;S, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a> + <a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: Future,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="../sink/trait.Sink.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;S as <a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item&gt;&gt;::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a></h4></section></summary><div class='docblock'>The type of value produced by the sink when an error occurs.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_ready" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#169">source</a><a href="#method.poll_ready" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.Sink.html#tymethod.poll_ready" class="fnname">poll_ready</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut Self&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Result&lt;(), Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempts to prepare the <code>Sink</code> to receive a value. <a href="../sink/trait.Sink.html#tymethod.poll_ready">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.start_send" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#169">source</a><a href="#method.start_send" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.Sink.html#tymethod.start_send" class="fnname">start_send</a>(self: Pin&lt;&amp;mut Self&gt;, item: Item) -&gt; Result&lt;(), Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Begin the process of sending a value to the sink.
Each call to this function must be preceded by a successful call to
<code>poll_ready</code> which returned <code>Poll::Ready(Ok(()))</code>. <a href="../sink/trait.Sink.html#tymethod.start_send">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_flush" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#169">source</a><a href="#method.poll_flush" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.Sink.html#tymethod.poll_flush" class="fnname">poll_flush</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut Self&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Result&lt;(), Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Flush any remaining output from this sink. <a href="../sink/trait.Sink.html#tymethod.poll_flush">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_close" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#169">source</a><a href="#method.poll_close" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.Sink.html#tymethod.poll_close" class="fnname">poll_close</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut Self&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Result&lt;(), Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Flush any remaining output and close this sink, if necessary. <a href="../sink/trait.Sink.html#tymethod.poll_close">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Stream-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#111-148">source</a><a href="#impl-Stream-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;St, Fut&gt; <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a> for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: Future,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Item" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Item" class="anchor"></a><h4 class="code-header">type <a href="trait.Stream.html#associatedtype.Item" class="associatedtype">Item</a> = &lt;St as <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>&gt;::<a class="associatedtype" href="trait.Stream.html#associatedtype.Item" title="type futures_util::stream::Stream::Item">Item</a></h4></section></summary><div class='docblock'>Values yielded by the stream.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_next" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#118-139">source</a><a href="#method.poll_next" class="anchor"></a><h4 class="code-header">fn <a href="trait.Stream.html#tymethod.poll_next" class="fnname">poll_next</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut Self&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Option&lt;St::<a class="associatedtype" href="trait.Stream.html#associatedtype.Item" title="type futures_util::stream::Stream::Item">Item</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to pull out the next value of this stream, registering the
current task for wakeup if the value is not yet available, and returning
<code>None</code> if the stream is exhausted. <a href="trait.Stream.html#tymethod.poll_next">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.size_hint" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#141-147">source</a><a href="#method.size_hint" class="anchor"></a><h4 class="code-header">fn <a href="trait.Stream.html#method.size_hint" class="fnname">size_hint</a>(&amp;self) -&gt; (usize, Option&lt;usize&gt;)</h4></section></summary><div class='docblock'>Returns the bounds on the remaining length of the stream. <a href="trait.Stream.html#method.size_hint">Read more</a></div></details></div></details><section id="impl-Unpin-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/stream/stream/take_until.rs.html#13-28">source</a><a href="#impl-Unpin-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;'__pin, St:&nbsp;<a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>, Fut:&nbsp;Future&gt; Unpin for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;__Origin&lt;'__pin, St, Fut&gt;: Unpin,</span></h3></section></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;St, Fut&gt; RefUnwindSafe for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;St: RefUnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Fut as Future&gt;::Output: RefUnwindSafe,</span></h3></section><section id="impl-Send-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-Send-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;St, Fut&gt; Send for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;St: Send,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Fut as Future&gt;::Output: Send,</span></h3></section><section id="impl-Sync-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-Sync-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;St, Fut&gt; Sync for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;St: Sync,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Fut as Future&gt;::Output: Sync,</span></h3></section><section id="impl-UnwindSafe-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;St, Fut&gt; UnwindSafe for <a class="struct" href="struct.TakeUntil.html" title="struct futures_util::stream::TakeUntil">TakeUntil</a>&lt;St, Fut&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;St: UnwindSafe,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;Fut as Future&gt;::Output: UnwindSafe,</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-Any-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Any for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a class="fnname">type_id</a>(&amp;self) -&gt; TypeId</h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-Borrow%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Borrow&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow</a>(&amp;self) -&gt; &amp;T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-BorrowMut%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; BorrowMut&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow_mut</a>(&amp;mut self) -&gt; &amp;mut T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-From%3CT%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; From&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-Into%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; Into&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: From&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code>[From]&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-SinkExt%3CItem%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#61">source</a><a href="#impl-SinkExt%3CItem%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, Item&gt; <a class="trait" href="../sink/trait.SinkExt.html" title="trait futures_util::sink::SinkExt">SinkExt</a>&lt;Item&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item&gt; + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#77-85">source</a><a href="#method.with" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.with" class="fnname">with</a>&lt;U, Fut, F, E&gt;(self, f: F) -&gt; <a class="struct" href="../sink/struct.With.html" title="struct futures_util::sink::With">With</a>&lt;Self, Item, U, Fut, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(U) -&gt; Fut,<br>&nbsp;&nbsp;&nbsp;&nbsp;Fut: Future&lt;Output = Result&lt;Item, E&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;E: From&lt;Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Composes a function <em>in front of</em> the sink. <a href="../sink/trait.SinkExt.html#method.with">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_flat_map" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#119-126">source</a><a href="#method.with_flat_map" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.with_flat_map" class="fnname">with_flat_map</a>&lt;U, St, F&gt;(self, f: F) -&gt; <a class="struct" href="../sink/struct.WithFlatMap.html" title="struct futures_util::sink::WithFlatMap">WithFlatMap</a>&lt;Self, Item, U, St, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnMut(U) -&gt; St,<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>&lt;Item = Result&lt;Item, Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Composes a function <em>in front of</em> the sink. <a href="../sink/trait.SinkExt.html#method.with_flat_map">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sink_map_err" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#143-149">source</a><a href="#method.sink_map_err" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.sink_map_err" class="fnname">sink_map_err</a>&lt;E, F&gt;(self, f: F) -&gt; <a class="struct" href="../sink/struct.SinkMapErr.html" title="struct futures_util::sink::SinkMapErr">SinkMapErr</a>&lt;Self, F&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: FnOnce(Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>) -&gt; E,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Transforms the error returned by the sink.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.sink_err_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#154-160">source</a><a href="#method.sink_err_into" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.sink_err_into" class="fnname">sink_err_into</a>&lt;E&gt;(self) -&gt; <a class="struct" href="../sink/struct.SinkErrInto.html" title="struct futures_util::sink::SinkErrInto">SinkErrInto</a>&lt;Self, Item, E&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>: Into&lt;E&gt;,</span></h4></section></summary><div class='docblock'>Map this sink’s error to a different error type using the <code>Into</code> trait. <a href="../sink/trait.SinkExt.html#method.sink_err_into">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.buffer" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#175-180">source</a><a href="#method.buffer" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.buffer" class="fnname">buffer</a>(self, capacity: usize) -&gt; <a class="struct" href="../sink/struct.Buffer.html" title="struct futures_util::sink::Buffer">Buffer</a>&lt;Self, Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Adds a fixed-size buffer to the current sink. <a href="../sink/trait.SinkExt.html#method.buffer">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.close" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#183-188">source</a><a href="#method.close" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.close" class="fnname">close</a>(&amp;mut self) -&gt; <a class="struct" href="../sink/struct.Close.html" title="struct futures_util::sink::Close">Close</a>&lt;'_, Self, Item&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="../sink/struct.Close.html" title="struct futures_util::sink::Close">Close</a>&lt;'_, Si, Item&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;Si:&nbsp;<a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item&gt; + Unpin + ?Sized, Item&gt; Future for <a class="struct" href="../sink/struct.Close.html" title="struct futures_util::sink::Close">Close</a>&lt;'_, Si, Item&gt;</span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = Result&lt;(), Si::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>Close the sink.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fanout" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#194-201">source</a><a href="#method.fanout" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.fanout" class="fnname">fanout</a>&lt;Si&gt;(self, other: Si) -&gt; <a class="struct" href="../sink/struct.Fanout.html" title="struct futures_util::sink::Fanout">Fanout</a>&lt;Self, Si&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Item: Clone,<br>&nbsp;&nbsp;&nbsp;&nbsp;Si: <a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item, Error = Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;,</span></h4></section></summary><div class='docblock'>Fanout items to multiple sinks. <a href="../sink/trait.SinkExt.html#method.fanout">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.flush" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#207-212">source</a><a href="#method.flush" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.flush" class="fnname">flush</a>(&amp;mut self) -&gt; <a class="struct" href="../sink/struct.Flush.html" title="struct futures_util::sink::Flush">Flush</a>&lt;'_, Self, Item&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="../sink/struct.Flush.html" title="struct futures_util::sink::Flush">Flush</a>&lt;'_, Si, Item&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;Si:&nbsp;<a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item&gt; + Unpin + ?Sized, Item&gt; Future for <a class="struct" href="../sink/struct.Flush.html" title="struct futures_util::sink::Flush">Flush</a>&lt;'_, Si, Item&gt;</span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = Result&lt;(), Si::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>Flush the sink, processing all pending items. <a href="../sink/trait.SinkExt.html#method.flush">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.send" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#220-225">source</a><a href="#method.send" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.send" class="fnname">send</a>(&amp;mut self, item: Item) -&gt; <a class="struct" href="../sink/struct.Send.html" title="struct futures_util::sink::Send">Send</a>&lt;'_, Self, Item&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="../sink/struct.Send.html" title="struct futures_util::sink::Send">Send</a>&lt;'_, Si, Item&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;Si:&nbsp;<a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item&gt; + Unpin + ?Sized, Item&gt; Future for <a class="struct" href="../sink/struct.Send.html" title="struct futures_util::sink::Send">Send</a>&lt;'_, Si, Item&gt;</span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = Result&lt;(), Si::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>A future that completes after the given item has been fully processed
into the sink, including flushing. <a href="../sink/trait.SinkExt.html#method.send">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.feed" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#233-238">source</a><a href="#method.feed" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.feed" class="fnname">feed</a>(&amp;mut self, item: Item) -&gt; <a class="struct" href="../sink/struct.Feed.html" title="struct futures_util::sink::Feed">Feed</a>&lt;'_, Self, Item&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="../sink/struct.Feed.html" title="struct futures_util::sink::Feed">Feed</a>&lt;'_, Si, Item&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;Si:&nbsp;<a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item&gt; + Unpin + ?Sized, Item&gt; Future for <a class="struct" href="../sink/struct.Feed.html" title="struct futures_util::sink::Feed">Feed</a>&lt;'_, Si, Item&gt;</span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = Result&lt;(), Si::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>A future that completes after the given item has been received
by the sink. <a href="../sink/trait.SinkExt.html#method.feed">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.send_all" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#252-261">source</a><a href="#method.send_all" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.send_all" class="fnname">send_all</a>&lt;'a, St&gt;(&amp;'a mut self, stream: &amp;'a mut St) -&gt; <a class="struct" href="../sink/struct.SendAll.html" title="struct futures_util::sink::SendAll">SendAll</a>&lt;'a, Self, St&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="struct" href="../sink/struct.SendAll.html" title="struct futures_util::sink::SendAll">SendAll</a>&lt;'_, Si, St&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;Si, St, Ok, Error&gt; Future for <a class="struct" href="../sink/struct.SendAll.html" title="struct futures_util::sink::SendAll">SendAll</a>&lt;'_, Si, St&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Si: <a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Ok, Error = Error&gt; + Unpin + ?Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>&lt;Item = Result&lt;Ok, Error&gt;&gt; + Unpin + ?Sized,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = Result&lt;(), Error&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="trait.TryStream.html" title="trait futures_util::stream::TryStream">TryStream</a>&lt;Ok = Item, Error = Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt; + <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a> + Unpin + ?Sized,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>A future that completes after the given stream has been fully processed
into the sink, including flushing. <a href="../sink/trait.SinkExt.html#method.send_all">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.left_sink" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#268-274">source</a><a href="#method.left_sink" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.left_sink" class="fnname">left_sink</a>&lt;Si2&gt;(self) -&gt; <a class="enum" href="../future/enum.Either.html" title="enum futures_util::future::Either">Either</a>&lt;Self, Si2&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="../future/enum.Either.html" title="enum futures_util::future::Either">Either</a>&lt;A, B&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;A, B&gt; Future for <a class="enum" href="../future/enum.Either.html" title="enum futures_util::future::Either">Either</a>&lt;A, B&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Future&lt;Output = A::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = A::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Si2: <a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item, Error = Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Wrap this sink in an <code>Either</code> sink, making it the left-hand variant
of that <code>Either</code>. <a href="../sink/trait.SinkExt.html#method.left_sink">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.right_sink" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#281-287">source</a><a href="#method.right_sink" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.right_sink" class="fnname">right_sink</a>&lt;Si1&gt;(self) -&gt; <a class="enum" href="../future/enum.Either.html" title="enum futures_util::future::Either">Either</a>&lt;Si1, Self&gt;<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for <a class="enum" href="../future/enum.Either.html" title="enum futures_util::future::Either">Either</a>&lt;A, B&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;A, B&gt; Future for <a class="enum" href="../future/enum.Either.html" title="enum futures_util::future::Either">Either</a>&lt;A, B&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: Future,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: Future&lt;Output = A::Output&gt;,</span></span><span class="where fmt-newline"> type <a class="associatedtype">Output</a> = A::Output;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Si1: <a class="trait" href="../sink/trait.Sink.html" title="trait futures_util::sink::Sink">Sink</a>&lt;Item, Error = Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Sized,</span></h4></section></summary><div class='docblock'>Wrap this stream in an <code>Either</code> stream, making it the right-hand variant
of that <code>Either</code>. <a href="../sink/trait.SinkExt.html#method.right_sink">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_ready_unpin" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#302-307">source</a><a href="#method.poll_ready_unpin" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.poll_ready_unpin" class="fnname">poll_ready_unpin</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Result&lt;(), Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>A convenience method for calling <a href="../sink/trait.Sink.html#tymethod.poll_ready" title="Sink::poll_ready"><code>Sink::poll_ready</code></a> on [<code>Unpin</code>]
sink types. <a href="../sink/trait.SinkExt.html#method.poll_ready_unpin">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.start_send_unpin" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#311-316">source</a><a href="#method.start_send_unpin" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.start_send_unpin" class="fnname">start_send_unpin</a>(&amp;mut self, item: Item) -&gt; Result&lt;(), Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>A convenience method for calling <a href="../sink/trait.Sink.html#tymethod.start_send" title="Sink::start_send"><code>Sink::start_send</code></a> on [<code>Unpin</code>]
sink types. <a href="../sink/trait.SinkExt.html#method.start_send_unpin">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_flush_unpin" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#320-325">source</a><a href="#method.poll_flush_unpin" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.poll_flush_unpin" class="fnname">poll_flush_unpin</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Result&lt;(), Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>A convenience method for calling <a href="../sink/trait.Sink.html#tymethod.poll_flush" title="Sink::poll_flush"><code>Sink::poll_flush</code></a> on [<code>Unpin</code>]
sink types. <a href="../sink/trait.SinkExt.html#method.poll_flush_unpin">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_close_unpin" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/sink/mod.rs.html#329-334">source</a><a href="#method.poll_close_unpin" class="anchor"></a><h4 class="code-header">fn <a href="../sink/trait.SinkExt.html#method.poll_close_unpin" class="fnname">poll_close_unpin</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Result&lt;(), Self::<a class="associatedtype" href="../sink/trait.Sink.html#associatedtype.Error" title="type futures_util::sink::Sink::Error">Error</a>&gt;&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: Unpin,</span></h4></section></summary><div class='docblock'>A convenience method for calling <a href="../sink/trait.Sink.html#tymethod.poll_close" title="Sink::poll_close"><code>Sink::poll_close</code></a> on [<code>Unpin</code>]
sink types. <a href="../sink/trait.SinkExt.html#method.poll_close_unpin">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-TryFrom%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryFrom&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: Into&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-2" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Infallible</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_from</a>(value: U) -&gt; Result&lt;T, &lt;T as TryFrom&lt;U&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a href="#impl-TryInto%3CU%3E-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryInto&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: TryFrom&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = &lt;U as TryFrom&lt;T&gt;&gt;::Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_into</a>(self) -&gt; Result&lt;U, &lt;U as TryFrom&lt;T&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryStream-for-TakeUntil%3CSt%2C%20Fut%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_core/stream.rs.html#185">source</a><a href="#impl-TryStream-for-TakeUntil%3CSt%2C%20Fut%3E" class="anchor"></a><h3 class="code-header">impl&lt;S, T, E&gt; <a class="trait" href="trait.TryStream.html" title="trait futures_util::stream::TryStream">TryStream</a> for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="trait.Stream.html" title="trait futures_util::stream::Stream">Stream</a>&lt;Item = Result&lt;T, E&gt;&gt; + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Ok" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Ok" class="anchor"></a><h4 class="code-header">type <a href="trait.TryStream.html#associatedtype.Ok" class="associatedtype">Ok</a> = T</h4></section></summary><div class='docblock'>The type of successful values yielded by this future</div></details><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-3" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-3" class="anchor"></a><h4 class="code-header">type <a href="trait.TryStream.html#associatedtype.Error" class="associatedtype">Error</a> = E</h4></section></summary><div class='docblock'>The type of failures yielded by this future</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_poll_next" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_core/stream.rs.html#192-195">source</a><a href="#method.try_poll_next" class="anchor"></a><h4 class="code-header">fn <a href="trait.TryStream.html#tymethod.try_poll_next" class="fnname">try_poll_next</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut S&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Option&lt;Result&lt;&lt;S as <a class="trait" href="trait.TryStream.html" title="trait futures_util::stream::TryStream">TryStream</a>&gt;::<a class="associatedtype" href="trait.TryStream.html#associatedtype.Ok" title="type futures_util::stream::TryStream::Ok">Ok</a>, &lt;S as <a class="trait" href="trait.TryStream.html" title="trait futures_util::stream::TryStream">TryStream</a>&gt;::<a class="associatedtype" href="trait.TryStream.html#associatedtype.Error" title="type futures_util::stream::TryStream::Error">Error</a>&gt;&gt;&gt;</h4></section></summary><div class='docblock'>Poll this <code>TryStream</code> as if it were a <code>Stream</code>. <a href="trait.TryStream.html#tymethod.try_poll_next">Read more</a></div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="futures_util" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>