Files
mercator_service/actix_codec/trait.AsyncWrite.html

113 lines
32 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `AsyncWrite` trait in crate `actix_codec`."><meta name="keywords" content="rust, rustlang, rust-lang, AsyncWrite"><title>actix_codec::AsyncWrite - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc trait"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">&#9776;</div><a href='../actix_codec/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Trait AsyncWrite</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#required-methods">Required Methods</a><div class="sidebar-links"><a href="#tymethod.shutdown">shutdown</a></div><a class="sidebar-title" href="#provided-methods">Provided Methods</a><div class="sidebar-links"><a href="#method.poll_flush">poll_flush</a><a href="#method.poll_write">poll_write</a><a href="#method.write_buf">write_buf</a></div><a class="sidebar-title" href="#foreign-impls">Implementations on Foreign Types</a><div class="sidebar-links"><a href="#impl-AsyncWrite-for-%26%27a%20mut%20T">&amp;&#39;a mut T</a><a href="#impl-AsyncWrite-for-AllowStdIo%3CT%3E">AllowStdIo&lt;T&gt;</a><a href="#impl-AsyncWrite-for-Box%3CT%3E">Box&lt;T&gt;</a><a href="#impl-AsyncWrite-for-BufWriter%3CT%3E">BufWriter&lt;T&gt;</a><a href="#impl-AsyncWrite-for-Cursor%3C%26%27a%20mut%20%5Bu8%5D%3E">Cursor&lt;&amp;&#39;a mut [u8]&gt;</a><a href="#impl-AsyncWrite-for-Cursor%3CBox%3C%5Bu8%5D%3E%3E">Cursor&lt;Box&lt;[u8]&gt;&gt;</a><a href="#impl-AsyncWrite-for-Cursor%3CVec%3Cu8%3E%3E">Cursor&lt;Vec&lt;u8&gt;&gt;</a><a href="#impl-AsyncWrite-for-Sink">Sink</a><a href="#impl-AsyncWrite-for-WriteHalf%3CT%3E">WriteHalf&lt;T&gt;</a></div><a class="sidebar-title" href="#implementors">Implementors</a></div><p class='location'><a href='index.html'>actix_codec</a></p><script>window.sidebarCurrent = {name: 'AsyncWrite', ty: 'trait', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>&#x2212;</span>]</a></span><a class='srclink' href='../src/tokio_io/async_write.rs.html#37-147' title='goto source code'>[src]</a></span><span class='in-band'>Trait <a href='index.html'>actix_codec</a>::<wbr><a class="trait" href=''>AsyncWrite</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust trait'>pub trait AsyncWrite: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> {
fn <a href='#tymethod.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;;
fn <a href='#method.poll_write' class='fnname'>poll_write</a>(&amp;mut self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&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="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt; { ... }
<div class='item-spacer'></div> fn <a href='#method.poll_flush' class='fnname'>poll_flush</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt; { ... }
<div class='item-spacer'></div> fn <a href='#method.write_buf' class='fnname'>write_buf</a>&lt;B&gt;(&amp;mut self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B) -&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="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;<br>&nbsp;&nbsp;&nbsp; <span class="where">where<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;B: <a class="trait" href="../bytes/buf/buf/trait.Buf.html" title="trait bytes::buf::buf::Buf">Buf</a></span>,
{ ... }
}</pre></div><div class='docblock'><p>Writes bytes asynchronously.</p>
<p>The trait inherits from <code>std::io::Write</code> and indicates that an I/O object is
<strong>nonblocking</strong>. All non-blocking I/O objects must return an error when
bytes cannot be written instead of blocking the current thread.</p>
<p>Specifically, this means that the <code>poll_write</code> function will return one of
the following:</p>
<ul>
<li>
<p><code>Ok(Async::Ready(n))</code> means that <code>n</code> bytes of data was immediately
written.</p>
</li>
<li>
<p><code>Ok(Async::NotReady)</code> means that no data was written from the buffer
provided. The I/O object is not currently writable but may become writable
in the future. Most importantly, <strong>the current future's task is scheduled
to get unparked when the object is writable</strong>. This means that like
<code>Future::poll</code> you'll receive a notification when the I/O object is
writable again.</p>
</li>
<li>
<p><code>Err(e)</code> for other errors are standard I/O errors coming from the
underlying object.</p>
</li>
</ul>
<p>This trait importantly means that the <code>write</code> method only works in the
context of a future's task. The object may panic if used outside of a task.</p>
<p>Note that this trait also represents that the <code>Write::flush</code> method works
very similarly to the <code>write</code> method, notably that <code>Ok(())</code> means that the
writer has successfully been flushed, a &quot;would block&quot; error means that the
current task is ready to receive a notification when flushing can make more
progress, and otherwise normal errors can happen as well.</p>
</div>
<h2 id='required-methods' class='small-section-header'>Required methods<a href='#required-methods' class='anchor'></a></h2><div class='methods'><h3 id='tymethod.shutdown' class='method'><code id='shutdown.v'>fn <a href='#tymethod.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code></h3><div class='docblock'><p>Initiates or attempts to shut down this writer, returning success when
the I/O connection has completely shut down.</p>
<p>This method is intended to be used for asynchronous shutdown of I/O
connections. For example this is suitable for implementing shutdown of a
TLS connection or calling <code>TcpStream::shutdown</code> on a proxied connection.
Protocols sometimes need to flush out final pieces of data or otherwise
perform a graceful shutdown handshake, reading/writing more data as
appropriate. This method is the hook for such protocols to implement the
graceful shutdown logic.</p>
<p>This <code>shutdown</code> method is required by implementers of the
<code>AsyncWrite</code> trait. Wrappers typically just want to proxy this call
through to the wrapped type, and base types will typically implement
shutdown logic here or just return <code>Ok(().into())</code>. Note that if you're
wrapping an underlying <code>AsyncWrite</code> a call to <code>shutdown</code> implies that
transitively the entire stream has been shut down. After your wrapper's
shutdown logic has been executed you should shut down the underlying
stream.</p>
<p>Invocation of a <code>shutdown</code> implies an invocation of <code>flush</code>. Once this
method returns <code>Ready</code> it implies that a flush successfully happened
before the shutdown happened. That is, callers don't need to call
<code>flush</code> before calling <code>shutdown</code>. They can rely that by calling
<code>shutdown</code> any pending buffered data will be written out.</p>
<h1 id="return-value" class="section-header"><a href="#return-value">Return value</a></h1>
<p>This function returns a <code>Poll&lt;(), io::Error&gt;</code> classified as such:</p>
<ul>
<li>
<p><code>Ok(Async::Ready(()))</code> - indicates that the connection was
successfully shut down and is now safe to deallocate/drop/close
resources associated with it. This method means that the current task
will no longer receive any notifications due to this method and the
I/O object itself is likely no longer usable.</p>
</li>
<li>
<p><code>Ok(Async::NotReady)</code> - indicates that shutdown is initiated but could
not complete just yet. This may mean that more I/O needs to happen to
continue this shutdown operation. The current task is scheduled to
receive a notification when it's otherwise ready to continue the
shutdown operation. When woken up this method should be called again.</p>
</li>
<li>
<p><code>Err(e)</code> - indicates a fatal error has happened with shutdown,
indicating that the shutdown operation did not complete successfully.
This typically means that the I/O object is no longer usable.</p>
</li>
</ul>
<h1 id="errors" class="section-header"><a href="#errors">Errors</a></h1>
<p>This function can return normal I/O errors through <code>Err</code>, described
above. Additionally this method may also render the underlying
<code>Write::write</code> method no longer usable (e.g. will return errors in the
future). It's recommended that once <code>shutdown</code> is called the
<code>write</code> method is no longer called.</p>
<h1 id="panics" class="section-header"><a href="#panics">Panics</a></h1>
<p>This function will panic if not called within the context of a future's
task.</p>
</div></div><span class='loading-content'>Loading content...</span>
<h2 id='provided-methods' class='small-section-header'>Provided methods<a href='#provided-methods' class='anchor'></a></h2><div class='methods'><h3 id='method.poll_write' class='method'><code id='poll_write.v'>fn <a href='#method.poll_write' class='fnname'>poll_write</a>(&amp;mut self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>) -&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="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code></h3><div class='docblock'><p>Attempt to write bytes from <code>buf</code> into the object.</p>
<p>On success, returns <code>Ok(Async::Ready(num_bytes_written))</code>.</p>
<p>If the object is not ready for writing, the method returns
<code>Ok(Async::NotReady)</code> and arranges for the current task (via
<code>cx.waker()</code>) to receive a notification when the object becomes
readable or is closed.</p>
</div><h3 id='method.poll_flush' class='method'><code id='poll_flush.v'>fn <a href='#method.poll_flush' class='fnname'>poll_flush</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code></h3><div class='docblock'><p>Attempt to flush the object, ensuring that any buffered data reach
their destination.</p>
<p>On success, returns <code>Ok(Async::Ready(()))</code>.</p>
<p>If flushing cannot immediately complete, this method returns
<code>Ok(Async::NotReady)</code> and arranges for the current task (via
<code>cx.waker()</code>) to receive a notification when the object can make
progress towards flushing.</p>
</div><h3 id='method.write_buf' class='method'><code id='write_buf.v'>fn <a href='#method.write_buf' class='fnname'>write_buf</a>&lt;B&gt;(&amp;mut self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B) -&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="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: <a class="trait" href="../bytes/buf/buf/trait.Buf.html" title="trait bytes::buf::buf::Buf">Buf</a>,&nbsp;</span></code></h3><div class='docblock'><p>Write a <code>Buf</code> into this value, returning how many bytes were written.</p>
<p>Note that this method will advance the <code>buf</code> provided automatically by
the number of bytes written.</p>
</div></div><span class='loading-content'>Loading content...</span>
<h2 id='foreign-impls' class='small-section-header'>Implementations on Foreign Types<a href='#foreign-impls' class='anchor'></a></h2><h3 id='impl-AsyncWrite-for-BufWriter%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/buffered/struct.BufWriter.html" title="struct std::io::buffered::BufWriter">BufWriter</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a>,&nbsp;</span></code><a href='#impl-AsyncWrite-for-BufWriter%3CT%3E' class='anchor'></a><a class='srclink' href='../src/tokio_io/async_write.rs.html#191-196' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown' class="method hidden"><code id='shutdown.v-1'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/async_write.rs.html#192-195' title='goto source code'>[src]</a></h4></div><h3 id='impl-AsyncWrite-for-Cursor%3C%26%27a%20mut%20%5Bu8%5D%3E' class='impl'><code class='in-band'>impl&lt;'a&gt; <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/cursor/struct.Cursor.html" title="struct std::io::cursor::Cursor">Cursor</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;</code><a href='#impl-AsyncWrite-for-Cursor%3C%26%27a%20mut%20%5Bu8%5D%3E' class='anchor'></a><a class='srclink' href='../src/tokio_io/async_write.rs.html#206-210' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown-1' class="method hidden"><code id='shutdown.v-2'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/async_write.rs.html#207-209' title='goto source code'>[src]</a></h4></div><h3 id='impl-AsyncWrite-for-WriteHalf%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="struct" href="../tokio_io/split/struct.WriteHalf.html" title="struct tokio_io::split::WriteHalf">WriteHalf</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a>,&nbsp;</span></code><a href='#impl-AsyncWrite-for-WriteHalf%3CT%3E' class='anchor'></a><a class='srclink' href='../src/tokio_io/split.rs.html#94-107' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown-2' class="method hidden"><code id='shutdown.v-3'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/split.rs.html#95-98' title='goto source code'>[src]</a></h4><h4 id='method.write_buf-1' class="method hidden"><code id='write_buf.v-1'>fn <a href='#method.write_buf' class='fnname'>write_buf</a>&lt;B&gt;(&amp;mut self, buf: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>B) -&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="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;B: <a class="trait" href="../bytes/buf/buf/trait.Buf.html" title="trait bytes::buf::buf::Buf">Buf</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;<a class="struct" href="../tokio_io/split/struct.WriteHalf.html" title="struct tokio_io::split::WriteHalf">WriteHalf</a>&lt;T&gt;: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></code><a class='srclink' href='../src/tokio_io/split.rs.html#100-106' title='goto source code'>[src]</a></h4></div><h3 id='impl-AsyncWrite-for-Box%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::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>,&nbsp;</span></code><a href='#impl-AsyncWrite-for-Box%3CT%3E' class='anchor'></a><a class='srclink' href='../src/tokio_io/async_write.rs.html#149-153' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown-3' class="method hidden"><code id='shutdown.v-4'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/async_write.rs.html#150-152' title='goto source code'>[src]</a></h4></div><h3 id='impl-AsyncWrite-for-AllowStdIo%3CT%3E' class='impl'><code class='in-band'>impl&lt;T&gt; <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="struct" href="../tokio_io/allow_std/struct.AllowStdIo.html" title="struct tokio_io::allow_std::AllowStdIo">AllowStdIo</a>&lt;T&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a>,&nbsp;</span></code><a href='#impl-AsyncWrite-for-AllowStdIo%3CT%3E' class='anchor'></a><a class='srclink' href='../src/tokio_io/allow_std.rs.html#58-65' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown-4' class="method hidden"><code id='shutdown.v-5'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/allow_std.rs.html#62-64' title='goto source code'>[src]</a></h4></div><h3 id='impl-AsyncWrite-for-Sink' class='impl'><code class='in-band'>impl <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/util/struct.Sink.html" title="struct std::io::util::Sink">Sink</a></code><a href='#impl-AsyncWrite-for-Sink' class='anchor'></a><a class='srclink' href='../src/tokio_io/async_write.rs.html#166-170' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown-5' class="method hidden"><code id='shutdown.v-6'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/async_write.rs.html#167-169' title='goto source code'>[src]</a></h4></div><h3 id='impl-AsyncWrite-for-Cursor%3CBox%3C%5Bu8%5D%3E%3E' class='impl'><code class='in-band'>impl <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/cursor/struct.Cursor.html" title="struct std::io::cursor::Cursor">Cursor</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>&gt;&gt;</code><a href='#impl-AsyncWrite-for-Cursor%3CBox%3C%5Bu8%5D%3E%3E' class='anchor'></a><a class='srclink' href='../src/tokio_io/async_write.rs.html#218-222' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown-6' class="method hidden"><code id='shutdown.v-7'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/async_write.rs.html#219-221' title='goto source code'>[src]</a></h4></div><h3 id='impl-AsyncWrite-for-%26%27a%20mut%20T' class='impl'><code class='in-band'>impl&lt;'a, T&gt; <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;'a mut </a>T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::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>,&nbsp;</span></code><a href='#impl-AsyncWrite-for-%26%27a%20mut%20T' class='anchor'></a><a class='srclink' href='../src/tokio_io/async_write.rs.html#154-158' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown-7' class="method hidden"><code id='shutdown.v-8'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/async_write.rs.html#155-157' title='goto source code'>[src]</a></h4></div><h3 id='impl-AsyncWrite-for-Cursor%3CVec%3Cu8%3E%3E' class='impl'><code class='in-band'>impl <a class="trait" href="../actix_codec/trait.AsyncWrite.html" title="trait actix_codec::AsyncWrite">AsyncWrite</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/cursor/struct.Cursor.html" title="struct std::io::cursor::Cursor">Cursor</a>&lt;<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>&gt;&gt;</code><a href='#impl-AsyncWrite-for-Cursor%3CVec%3Cu8%3E%3E' class='anchor'></a><a class='srclink' href='../src/tokio_io/async_write.rs.html#212-216' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.shutdown-8' class="method hidden"><code id='shutdown.v-9'>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;mut 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;<a class="enum" href="../futures/poll/enum.Async.html" title="enum futures::poll::Async">Async</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/std/io/error/struct.Error.html" title="struct std::io::error::Error">Error</a>&gt;</code><a class='srclink' href='../src/tokio_io/async_write.rs.html#213-215' title='goto source code'>[src]</a></h4></div><span class='loading-content'>Loading content...</span>
<h2 id='implementors' class='small-section-header'>Implementors<a href='#implementors' class='anchor'></a></h2><div class='item-list' id='implementors-list'></div><span class='loading-content'>Loading content...</span><script type="text/javascript" src="../implementors/tokio_io/async_write/trait.AsyncWrite.js" async></script></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "actix_codec";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html>