blob: 5b30287bad9d38c8169fb687a428b9c348a31470 [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="The `BufReader` struct adds buffering to any reader."><meta name="keywords" content="rust, rustlang, rust-lang, BufReader"><title>BufReader in futures::io - 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/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/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">BufReader</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.buffer">buffer</a></li><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.new">new</a></li><li><a href="#method.poll_seek_relative">poll_seek_relative</a></li><li><a href="#method.seek_relative">seek_relative</a></li><li><a href="#method.with_capacity">with_capacity</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsyncBufRead-for-BufReader%3CR%3E">AsyncBufRead</a></li><li><a href="#impl-AsyncRead-for-BufReader%3CR%3E">AsyncRead</a></li><li><a href="#impl-AsyncSeek-for-BufReader%3CR%3E">AsyncSeek</a></li><li><a href="#impl-AsyncWrite-for-BufReader%3CR%3E">AsyncWrite</a></li><li><a href="#impl-Debug-for-BufReader%3CR%3E">Debug</a></li><li><a href="#impl-Unpin-for-BufReader%3CR%3E">Unpin</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-BufReader%3CR%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-BufReader%3CR%3E">Send</a></li><li><a href="#impl-Sync-for-BufReader%3CR%3E">Sync</a></li><li><a href="#impl-UnwindSafe-for-BufReader%3CR%3E">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-BufReader%3CR%3E">Any</a></li><li><a href="#impl-AsyncBufReadExt-for-BufReader%3CR%3E">AsyncBufReadExt</a></li><li><a href="#impl-AsyncReadExt-for-BufReader%3CR%3E">AsyncReadExt</a></li><li><a href="#impl-AsyncSeekExt-for-BufReader%3CR%3E">AsyncSeekExt</a></li><li><a href="#impl-AsyncWriteExt-for-BufReader%3CR%3E">AsyncWriteExt</a></li><li><a href="#impl-Borrow%3CT%3E-for-BufReader%3CR%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-BufReader%3CR%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-BufReader%3CR%3E">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-BufReader%3CR%3E">Into&lt;U&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-BufReader%3CR%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-BufReader%3CR%3E">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In futures::io</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</a>::<wbr><a href="index.html">io</a>::<wbr><a class="struct" href="#">BufReader</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/io/buf_reader.rs.html#11-38">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 BufReader&lt;R&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>The <code>BufReader</code> struct adds buffering to any reader.</p>
<p>It can be excessively inefficient to work directly with a <a href="trait.AsyncRead.html"><code>AsyncRead</code></a>
instance. A <code>BufReader</code> performs large, infrequent reads on the underlying
<a href="trait.AsyncRead.html"><code>AsyncRead</code></a> and maintains an in-memory buffer of the results.</p>
<p><code>BufReader</code> can improve the speed of programs that make <em>small</em> and
<em>repeated</em> read calls to the same file or network socket. It does not
help when reading very large amounts at once, or reading just one or a few
times. It also provides no advantage when reading from a source that is
already in memory, like a <code>Vec&lt;u8&gt;</code>.</p>
<p>When the <code>BufReader</code> is dropped, the contents of its buffer will be
discarded. Creating multiple instances of a <code>BufReader</code> on the same
stream can cause data loss.</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-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#40">source</a><a href="#impl-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#43">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fnname">new</a>(inner: R) -&gt; <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;</h4></section></summary><div class="docblock"><p>Creates a new <code>BufReader</code> with a default buffer capacity. The default is currently 8 KB,
but may change in the future.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.with_capacity" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#48">source</a><h4 class="code-header">pub fn <a href="#method.with_capacity" class="fnname">with_capacity</a>(capacity: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, inner: R) -&gt; <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;</h4></section></summary><div class="docblock"><p>Creates a new <code>BufReader</code> with the specified buffer capacity.</p>
</div></details><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/io/buf_reader.rs.html#57">source</a><h4 class="code-header">pub fn <a href="#method.get_ref" class="fnname">get_ref</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>R</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/io/buf_reader.rs.html#57">source</a><h4 class="code-header">pub fn <a href="#method.get_mut" class="fnname">get_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>R</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/io/buf_reader.rs.html#57">source</a><h4 class="code-header">pub fn <a href="#method.get_pin_mut" class="fnname">get_pin_mut</a>(self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>R&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="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;P&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;P&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;P&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.DerefMut.html" title="trait core::ops::deref::DerefMut">DerefMut</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;&lt;P as <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a>: <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = &lt;&lt;P as <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html" title="trait core::ops::deref::Deref">Deref</a>&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/ops/deref/trait.Deref.html#associatedtype.Target" title="type core::ops::deref::Deref::Target">Target</a> as <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a>&gt;::<a class="associatedtype" href="../future/trait.Future.html#associatedtype.Output" title="type futures::future::Future::Output">Output</a>;</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/io/buf_reader.rs.html#57">source</a><h4 class="code-header">pub fn <a href="#method.into_inner" class="fnname">into_inner</a>(self) -&gt; R</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.buffer" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#62">source</a><h4 class="code-header">pub fn <a href="#method.buffer" class="fnname">buffer</a>(&amp;self) -&gt; &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]<span class="notable-traits"><span class="notable-traits-tooltip"><span class="notable-traits-tooltiptext"><span class="docblock"><span class="notable">Notable traits for &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]</span><code class="content"><span class="where fmt-newline">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]</span><span class="where fmt-newline">impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Returns a reference to the internally buffered data.</p>
<p>Unlike <code>fill_buf</code>, this will not attempt to fill the buffer if it is empty.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-BufReader%3CR%3E-1" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#75">source</a><a href="#impl-BufReader%3CR%3E-1" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + <a class="trait" href="trait.AsyncSeek.html" title="trait futures::io::AsyncSeek">AsyncSeek</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.seek_relative" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#80">source</a><h4 class="code-header">pub fn <a href="#method.seek_relative" class="fnname">seek_relative</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a><br>) -&gt; <a class="struct" href="struct.SeeKRelative.html" title="struct futures::io::SeeKRelative">SeeKRelative</a>&lt;'_, R&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="struct.SeeKRelative.html" title="struct futures::io::SeeKRelative">SeeKRelative</a>&lt;'_, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;R&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.SeeKRelative.html" title="struct futures::io::SeeKRelative">SeeKRelative</a>&lt;'_, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + <a class="trait" href="trait.AsyncSeek.html" title="trait futures::io::AsyncSeek">AsyncSeek</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span></h4></section></summary><div class="docblock"><p>Seeks relative to the current position. If the new position lies within the buffer,
the buffer will not be flushed, allowing for more efficient seeks.
This method does not return the location of the underlying reader, so the caller
must track this information themselves if it is required.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_seek_relative" class="method has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#88-92">source</a><h4 class="code-header">pub fn <a href="#method.poll_seek_relative" class="fnname">poll_seek_relative</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.i64.html">i64</a><br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Attempts to seek relative to the current position. If the new position lies within the buffer,
the buffer will not be flushed, allowing for more efficient seeks.
This method does not return the location of the underlying reader, so the caller
must track this information themselves if it is required.</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-AsyncBufRead-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#147">source</a><a href="#impl-AsyncBufRead-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.AsyncBufRead.html" title="trait futures::io::AsyncBufRead">AsyncBufRead</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_fill_buf" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#148">source</a><a href="#method.poll_fill_buf" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncBufRead.html#tymethod.poll_fill_buf" class="fnname">poll_fill_buf</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;<br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to return the contents of the internal buffer, filling it with more data
from the inner reader if it is empty. <a href="trait.AsyncBufRead.html#tymethod.poll_fill_buf">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.consume" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#163">source</a><a href="#method.consume" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncBufRead.html#tymethod.consume" class="fnname">consume</a>(self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;, amt: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class='docblock'>Tells this buffer that <code>amt</code> bytes have been consumed from the buffer,
so they should no longer be returned in calls to <a href="trait.AsyncRead.html#tymethod.poll_read"><code>poll_read</code></a>. <a href="trait.AsyncBufRead.html#tymethod.consume">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsyncRead-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#109">source</a><a href="#impl-AsyncRead-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_read" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#110-114">source</a><a href="#method.poll_read" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncRead.html#tymethod.poll_read" class="fnname">poll_read</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]<br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to read from the <code>AsyncRead</code> into <code>buf</code>. <a href="trait.AsyncRead.html#tymethod.poll_read">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_read_vectored" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#129-133">source</a><a href="#method.poll_read_vectored" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncRead.html#method.poll_read_vectored" class="fnname">poll_read_vectored</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;bufs: &amp;mut [<a class="struct" href="struct.IoSliceMut.html" title="struct futures::io::IoSliceMut">IoSliceMut</a>&lt;'_&gt;]<br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to read from the <code>AsyncRead</code> into <code>bufs</code> using vectored
IO operations. <a href="trait.AsyncRead.html#method.poll_read_vectored">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsyncSeek-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#181">source</a><a href="#impl-AsyncSeek-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.AsyncSeek.html" title="trait futures::io::AsyncSeek">AsyncSeek</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + <a class="trait" href="trait.AsyncSeek.html" title="trait futures::io::AsyncSeek">AsyncSeek</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_seek" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#204-208">source</a><a href="#method.poll_seek" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncSeek.html#tymethod.poll_seek" class="fnname">poll_seek</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;pos: <a class="enum" href="enum.SeekFrom.html" title="enum futures::io::SeekFrom">SeekFrom</a><br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Seek to an offset, in bytes, in the underlying reader.</p>
<p>The position used for seeking with <code>SeekFrom::Current(_)</code> is the
position the underlying reader would be at if the <code>BufReader</code> had no
internal buffer.</p>
<p>Seeking always discards the internal buffer, even if the seek position
would otherwise fall within it. This guarantees that calling
<code>.into_inner()</code> immediately after a seek yields the underlying reader
at the same position.</p>
<p>To seek without discarding the internal buffer, use
<a href="struct.BufReader.html#method.seek_relative"><code>BufReader::seek_relative</code></a> or
<a href="struct.BufReader.html#method.poll_seek_relative"><code>BufReader::poll_seek_relative</code></a>.</p>
<p>See <a href="trait.AsyncSeek.html"><code>AsyncSeek</code></a> for more details.</p>
<p>Note: In the edge case where you’re seeking with <code>SeekFrom::Current(n)</code>
where <code>n</code> minus the internal buffer length overflows an <code>i64</code>, two
seeks will be performed instead of one. If the second seek returns
<code>Err</code>, the underlying reader will be left at the same position it would
have if you called <code>seek</code> with <code>SeekFrom::Current(0)</code>.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsyncWrite-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#168">source</a><a href="#impl-AsyncWrite-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_write" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#169">source</a><a href="#method.poll_write" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWrite.html#tymethod.poll_write" class="fnname">poll_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]<br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to write bytes from <code>buf</code> into the object. <a href="trait.AsyncWrite.html#tymethod.poll_write">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_write_vectored" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#169">source</a><a href="#method.poll_write_vectored" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWrite.html#method.poll_write_vectored" class="fnname">poll_write_vectored</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;bufs: &amp;[<a class="struct" href="struct.IoSlice.html" title="struct futures::io::IoSlice">IoSlice</a>&lt;'_&gt;]<br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to write bytes from <code>bufs</code> into the object using vectored
IO operations. <a href="trait.AsyncWrite.html#method.poll_write_vectored">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/io/buf_reader.rs.html#169">source</a><a href="#method.poll_flush" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWrite.html#tymethod.poll_flush" class="fnname">poll_flush</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;<br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to flush the object, ensuring that any buffered data reach
their destination. <a href="trait.AsyncWrite.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/io/buf_reader.rs.html#169">source</a><a href="#method.poll_close" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWrite.html#tymethod.poll_close" class="fnname">poll_close</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: <a class="struct" href="https://doc.rust-lang.org/nightly/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;&amp;mut <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut <a class="struct" href="../task/struct.Context.html" title="struct futures::task::Context">Context</a>&lt;'_&gt;<br>) -&gt; <a class="enum" href="../task/enum.Poll.html" title="enum futures::task::Poll">Poll</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to close the object. <a href="trait.AsyncWrite.html#tymethod.poll_close">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#172">source</a><a href="#impl-Debug-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a>,</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/io/buf_reader.rs.html#173">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><section id="impl-Unpin-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/buf_reader.rs.html#11-38">source</a><a href="#impl-Unpin-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;'__pin, R&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;__Origin&lt;'__pin, R&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</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-BufReader%3CR%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</span></h3></section><section id="impl-Send-for-BufReader%3CR%3E" class="impl has-srclink"><a href="#impl-Send-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</span></h3></section><section id="impl-Sync-for-BufReader%3CR%3E" class="impl has-srclink"><a href="#impl-Sync-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</span></h3></section><section id="impl-UnwindSafe-for-BufReader%3CR%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.BufReader.html" title="struct futures::io::BufReader">BufReader</a>&lt;R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</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-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</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 class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-AsyncBufReadExt-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#824">source</a><a href="#impl-AsyncBufReadExt-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.AsyncBufReadExt.html" title="trait futures::io::AsyncBufReadExt">AsyncBufReadExt</a> for R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncBufRead.html" title="trait futures::io::AsyncBufRead">AsyncBufRead</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fill_buf" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#647-649">source</a><a href="#method.fill_buf" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncBufReadExt.html#method.fill_buf" class="fnname">fill_buf</a>(&amp;mut self) -&gt; <a class="struct" href="struct.FillBuf.html" title="struct futures::io::FillBuf">FillBuf</a>&lt;'_, 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="struct" href="struct.FillBuf.html" title="struct futures::io::FillBuf">FillBuf</a>&lt;'a, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;'a, R&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.FillBuf.html" title="struct futures::io::FillBuf">FillBuf</a>&lt;'a, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncBufRead.html" title="trait futures::io::AsyncBufRead">AsyncBufRead</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&amp;'a [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will wait for a non-empty buffer to be available from this I/O
object or EOF to be reached. <a href="trait.AsyncBufReadExt.html#method.fill_buf">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.consume_unpin" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#671-673">source</a><a href="#method.consume_unpin" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncBufReadExt.html#method.consume_unpin" class="fnname">consume_unpin</a>(&amp;mut self, amt: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>A convenience for calling <a href="trait.AsyncBufRead.html#tymethod.consume" title="AsyncBufRead::consume"><code>AsyncBufRead::consume</code></a> on <a href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="Unpin"><code>Unpin</code></a> IO types. <a href="trait.AsyncBufReadExt.html#method.consume_unpin">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_until" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#719-721">source</a><a href="#method.read_until" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncBufReadExt.html#method.read_until" class="fnname">read_until</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;byte: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;<br>) -&gt; <a class="struct" href="struct.ReadUntil.html" title="struct futures::io::ReadUntil">ReadUntil</a>&lt;'a, 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="struct" href="struct.ReadUntil.html" title="struct futures::io::ReadUntil">ReadUntil</a>&lt;'_, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;R&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.ReadUntil.html" title="struct futures::io::ReadUntil">ReadUntil</a>&lt;'_, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncBufRead.html" title="trait futures::io::AsyncBufRead">AsyncBufRead</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will read all the bytes associated with this I/O
object into <code>buf</code> until the delimiter <code>byte</code> or EOF is reached.
This method is the async equivalent to <a href="https://doc.rust-lang.org/nightly/std/io/trait.BufRead.html#method.read_until"><code>BufRead::read_until</code></a>. <a href="trait.AsyncBufReadExt.html#method.read_until">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_line" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#777-779">source</a><a href="#method.read_line" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncBufReadExt.html#method.read_line" class="fnname">read_line</a>(&amp;'a mut self, buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; <a class="struct" href="struct.ReadLine.html" title="struct futures::io::ReadLine">ReadLine</a>&lt;'a, 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="struct" href="struct.ReadLine.html" title="struct futures::io::ReadLine">ReadLine</a>&lt;'_, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;R&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.ReadLine.html" title="struct futures::io::ReadLine">ReadLine</a>&lt;'_, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncBufRead.html" title="trait futures::io::AsyncBufRead">AsyncBufRead</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will read all the bytes associated with this I/O
object into <code>buf</code> until a newline (the 0xA byte) or EOF is reached,
This method is the async equivalent to <a href="https://doc.rust-lang.org/nightly/std/io/trait.BufRead.html#method.read_line"><code>BufRead::read_line</code></a>. <a href="trait.AsyncBufReadExt.html#method.read_line">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.lines" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#816-818">source</a><a href="#method.lines" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncBufReadExt.html#method.lines" class="fnname">lines</a>(self) -&gt; <a class="struct" href="struct.Lines.html" title="struct futures::io::Lines">Lines</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Returns a stream over the lines of this reader.
This method is the async equivalent to <a href="https://doc.rust-lang.org/nightly/std/io/trait.BufRead.html#method.lines"><code>BufRead::lines</code></a>. <a href="trait.AsyncBufReadExt.html#method.lines">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-AsyncReadExt-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#398">source</a><a href="#impl-AsyncReadExt-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;R&gt; <a class="trait" href="trait.AsyncReadExt.html" title="trait futures::io::AsyncReadExt">AsyncReadExt</a> for R<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.chain" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#172-175">source</a><a href="#method.chain" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncReadExt.html#method.chain" class="fnname">chain</a>&lt;R&gt;(self, next: R) -&gt; <a class="struct" href="struct.Chain.html" title="struct futures::io::Chain">Chain</a>&lt;Self, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a>,</span></h4></section></summary><div class='docblock'>Creates an adaptor which will chain this stream with another. <a href="trait.AsyncReadExt.html#method.chain">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#204-206">source</a><a href="#method.read" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncReadExt.html#method.read" class="fnname">read</a>(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="struct" href="struct.Read.html" title="struct futures::io::Read">Read</a>&lt;'a, 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="struct" href="struct.Read.html" title="struct futures::io::Read">Read</a>&lt;'_, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;R&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.Read.html" title="struct futures::io::Read">Read</a>&lt;'_, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Tries to read some bytes directly into the given <code>buf</code> in asynchronous
manner, returning a future type. <a href="trait.AsyncReadExt.html#method.read">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_vectored" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#216-218">source</a><a href="#method.read_vectored" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncReadExt.html#method.read_vectored" class="fnname">read_vectored</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bufs: &amp;'a mut [<a class="struct" href="struct.IoSliceMut.html" title="struct futures::io::IoSliceMut">IoSliceMut</a>&lt;'a&gt;]<br>) -&gt; <a class="struct" href="struct.ReadVectored.html" title="struct futures::io::ReadVectored">ReadVectored</a>&lt;'a, 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="struct" href="struct.ReadVectored.html" title="struct futures::io::ReadVectored">ReadVectored</a>&lt;'_, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;R&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.ReadVectored.html" title="struct futures::io::ReadVectored">ReadVectored</a>&lt;'_, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will read from the <code>AsyncRead</code> into <code>bufs</code> using vectored
IO operations. <a href="trait.AsyncReadExt.html#method.read_vectored">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_exact" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#260-262">source</a><a href="#method.read_exact" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncReadExt.html#method.read_exact" class="fnname">read_exact</a>(&amp;'a mut self, buf: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="struct" href="struct.ReadExact.html" title="struct futures::io::ReadExact">ReadExact</a>&lt;'a, 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="struct" href="struct.ReadExact.html" title="struct futures::io::ReadExact">ReadExact</a>&lt;'_, R&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;R&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.ReadExact.html" title="struct futures::io::ReadExact">ReadExact</a>&lt;'_, R&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will read exactly enough bytes to fill <code>buf</code>,
returning an error if end of file (EOF) is hit sooner. <a href="trait.AsyncReadExt.html#method.read_exact">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_to_end" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#286-288">source</a><a href="#method.read_to_end" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncReadExt.html#method.read_to_end" class="fnname">read_to_end</a>(&amp;'a mut self, buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/alloc/struct.Global.html" title="struct alloc::alloc::Global">Global</a>&gt;) -&gt; <a class="struct" href="struct.ReadToEnd.html" title="struct futures::io::ReadToEnd">ReadToEnd</a>&lt;'a, 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="struct" href="struct.ReadToEnd.html" title="struct futures::io::ReadToEnd">ReadToEnd</a>&lt;'_, A&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;A&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.ReadToEnd.html" title="struct futures::io::ReadToEnd">ReadToEnd</a>&lt;'_, A&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will read all the bytes from this <code>AsyncRead</code>. <a href="trait.AsyncReadExt.html#method.read_to_end">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.read_to_string" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#312-314">source</a><a href="#method.read_to_string" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncReadExt.html#method.read_to_string" class="fnname">read_to_string</a>(&amp;'a mut self, buf: &amp;'a mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; <a class="struct" href="struct.ReadToString.html" title="struct futures::io::ReadToString">ReadToString</a>&lt;'a, 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="struct" href="struct.ReadToString.html" title="struct futures::io::ReadToString">ReadToString</a>&lt;'_, A&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;A&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.ReadToString.html" title="struct futures::io::ReadToString">ReadToString</a>&lt;'_, A&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;A: <a class="trait" href="trait.AsyncRead.html" title="trait futures::io::AsyncRead">AsyncRead</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will read all the bytes from this <code>AsyncRead</code>. <a href="trait.AsyncReadExt.html#method.read_to_string">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.split" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#348-350">source</a><a href="#method.split" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncReadExt.html#method.split" class="fnname">split</a>(self) -&gt; (<a class="struct" href="struct.ReadHalf.html" title="struct futures::io::ReadHalf">ReadHalf</a>&lt;Self&gt;, <a class="struct" href="struct.WriteHalf.html" title="struct futures::io::WriteHalf">WriteHalf</a>&lt;Self&gt;)<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a>,</span></h4></section></summary><div class='docblock'>Helper method for splitting this read/write object into two halves. <a href="trait.AsyncReadExt.html#method.split">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#375-377">source</a><a href="#method.take" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncReadExt.html#method.take" class="fnname">take</a>(self, limit: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) -&gt; <a class="struct" href="struct.Take.html" title="struct futures::io::Take">Take</a>&lt;Self&gt;</h4></section></summary><div class='docblock'>Creates an AsyncRead adapter which will read at most <code>limit</code> bytes
from the underlying reader. <a href="trait.AsyncReadExt.html#method.take">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-AsyncSeekExt-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#620">source</a><a href="#impl-AsyncSeekExt-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;S&gt; <a class="trait" href="trait.AsyncSeekExt.html" title="trait futures::io::AsyncSeekExt">AsyncSeekExt</a> for S<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="trait.AsyncSeek.html" title="trait futures::io::AsyncSeek">AsyncSeek</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.seek" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#601-603">source</a><a href="#method.seek" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncSeekExt.html#method.seek" class="fnname">seek</a>(&amp;mut self, pos: <a class="enum" href="enum.SeekFrom.html" title="enum futures::io::SeekFrom">SeekFrom</a>) -&gt; <a class="struct" href="struct.Seek.html" title="struct futures::io::Seek">Seek</a>&lt;'_, 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="struct" href="struct.Seek.html" title="struct futures::io::Seek">Seek</a>&lt;'_, S&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;S&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.Seek.html" title="struct futures::io::Seek">Seek</a>&lt;'_, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="trait.AsyncSeek.html" title="trait futures::io::AsyncSeek">AsyncSeek</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will seek an IO object, and then yield the
new position in the object and the object itself. <a href="trait.AsyncSeekExt.html#method.seek">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.stream_position" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#612-614">source</a><a href="#method.stream_position" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncSeekExt.html#method.stream_position" class="fnname">stream_position</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Seek.html" title="struct futures::io::Seek">Seek</a>&lt;'_, 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="struct" href="struct.Seek.html" title="struct futures::io::Seek">Seek</a>&lt;'_, S&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;S&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.Seek.html" title="struct futures::io::Seek">Seek</a>&lt;'_, S&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="trait.AsyncSeek.html" title="trait futures::io::AsyncSeek">AsyncSeek</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will return the current seek position from the
start of the stream. <a href="trait.AsyncSeekExt.html#method.stream_position">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-AsyncWriteExt-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#592">source</a><a href="#impl-AsyncWriteExt-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;W&gt; <a class="trait" href="trait.AsyncWriteExt.html" title="trait futures::io::AsyncWriteExt">AsyncWriteExt</a> for W<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><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/io/mod.rs.html#424-426">source</a><a href="#method.flush" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWriteExt.html#method.flush" class="fnname">flush</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Flush.html" title="struct futures::io::Flush">Flush</a>&lt;'_, 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="struct" href="struct.Flush.html" title="struct futures::io::Flush">Flush</a>&lt;'_, W&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;W&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.Flush.html" title="struct futures::io::Flush">Flush</a>&lt;'_, W&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will entirely flush this <code>AsyncWrite</code>. <a href="trait.AsyncWriteExt.html#method.flush">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/io/mod.rs.html#432-434">source</a><a href="#method.close" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWriteExt.html#method.close" class="fnname">close</a>(&amp;mut self) -&gt; <a class="struct" href="struct.Close.html" title="struct futures::io::Close">Close</a>&lt;'_, 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="struct" href="struct.Close.html" title="struct futures::io::Close">Close</a>&lt;'_, W&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;W&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.Close.html" title="struct futures::io::Close">Close</a>&lt;'_, W&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will entirely close this <code>AsyncWrite</code>.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#443-445">source</a><a href="#method.write" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWriteExt.html#method.write" class="fnname">write</a>(&amp;'a mut self, buf: &amp;'a [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="struct" href="struct.Write.html" title="struct futures::io::Write">Write</a>&lt;'a, 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="struct" href="struct.Write.html" title="struct futures::io::Write">Write</a>&lt;'_, W&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;W&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.Write.html" title="struct futures::io::Write">Write</a>&lt;'_, W&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will write bytes from <code>buf</code> into the object. <a href="trait.AsyncWriteExt.html#method.write">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_vectored" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#455-457">source</a><a href="#method.write_vectored" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWriteExt.html#method.write_vectored" class="fnname">write_vectored</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a mut self,<br>&nbsp;&nbsp;&nbsp;&nbsp;bufs: &amp;'a [<a class="struct" href="struct.IoSlice.html" title="struct futures::io::IoSlice">IoSlice</a>&lt;'a&gt;]<br>) -&gt; <a class="struct" href="struct.WriteVectored.html" title="struct futures::io::WriteVectored">WriteVectored</a>&lt;'a, 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="struct" href="struct.WriteVectored.html" title="struct futures::io::WriteVectored">WriteVectored</a>&lt;'_, W&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;W&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.WriteVectored.html" title="struct futures::io::WriteVectored">WriteVectored</a>&lt;'_, W&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Creates a future which will write bytes from <code>bufs</code> into the object using vectored
IO operations. <a href="trait.AsyncWriteExt.html#method.write_vectored">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.write_all" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#482-484">source</a><a href="#method.write_all" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWriteExt.html#method.write_all" class="fnname">write_all</a>(&amp;'a mut self, buf: &amp;'a [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="struct" href="struct.WriteAll.html" title="struct futures::io::WriteAll">WriteAll</a>&lt;'a, 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="struct" href="struct.WriteAll.html" title="struct futures::io::WriteAll">WriteAll</a>&lt;'_, W&gt;</span><code class="content"><span class="where fmt-newline">impl&lt;W&gt; <a class="trait" href="../future/trait.Future.html" title="trait futures::future::Future">Future</a> for <a class="struct" href="struct.WriteAll.html" title="struct futures::io::WriteAll">WriteAll</a>&lt;'_, W&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="trait.AsyncWrite.html" title="trait futures::io::AsyncWrite">AsyncWrite</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></span><span class="where fmt-newline"> type <a href="../future/trait.Future.html#associatedtype.Output" class="associatedtype">Output</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.Error.html" title="struct futures::io::Error">Error</a>&gt;;</span></code></span></span></span></span><span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</span></h4></section></summary><div class='docblock'>Write data into this object. <a href="trait.AsyncWriteExt.html#method.write_all">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_sink" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/futures_util/io/mod.rs.html#584-586">source</a><a href="#method.into_sink" class="anchor"></a><h4 class="code-header">fn <a href="trait.AsyncWriteExt.html#method.into_sink" class="fnname">into_sink</a>&lt;Item&gt;(self) -&gt; <a class="struct" href="struct.IntoSink.html" title="struct futures::io::IntoSink">IntoSink</a>&lt;Self, Item&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Item: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;,</span></h4></section></summary><div class='docblock'>Allow using an <a href="trait.AsyncWrite.html" title="AsyncWrite"><code>AsyncWrite</code></a> as a <a href="../sink/trait.Sink.html"><code>Sink</code></a><code>&lt;Item: AsRef&lt;[u8]&gt;&gt;</code>. <a href="trait.AsyncWriteExt.html#method.into_sink">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</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="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</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="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&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="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" 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-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&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="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" 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><a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&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 href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></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="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&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-BufReader%3CR%3E" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-BufReader%3CR%3E" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</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="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></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="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="futures" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>