blob: f1776e5279ceab93e37adfb7460476e04f396caa [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="Owned write half of a `TcpStream`, created by `into_split`."><meta name="keywords" content="rust, rustlang, rust-lang, OwnedWriteHalf"><title>OwnedWriteHalf in tokio::net::tcp - 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="../../../tokio/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="../../../tokio/index.html"><div class="logo-container"><img class="rust-logo" src="../../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">OwnedWriteHalf</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.forget">forget</a></li><li><a href="#method.local_addr">local_addr</a></li><li><a href="#method.peer_addr">peer_addr</a></li><li><a href="#method.ready">ready</a></li><li><a href="#method.reunite">reunite</a></li><li><a href="#method.try_write">try_write</a></li><li><a href="#method.try_write_vectored">try_write_vectored</a></li><li><a href="#method.writable">writable</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsRef%3CTcpStream%3E-for-OwnedWriteHalf">AsRef&lt;TcpStream&gt;</a></li><li><a href="#impl-AsyncWrite-for-OwnedWriteHalf">AsyncWrite</a></li><li><a href="#impl-Debug-for-OwnedWriteHalf">Debug</a></li><li><a href="#impl-Drop-for-OwnedWriteHalf">Drop</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-OwnedWriteHalf">RefUnwindSafe</a></li><li><a href="#impl-Send-for-OwnedWriteHalf">Send</a></li><li><a href="#impl-Sync-for-OwnedWriteHalf">Sync</a></li><li><a href="#impl-Unpin-for-OwnedWriteHalf">Unpin</a></li><li><a href="#impl-UnwindSafe-for-OwnedWriteHalf">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-OwnedWriteHalf">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-OwnedWriteHalf">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-OwnedWriteHalf">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-OwnedWriteHalf">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-OwnedWriteHalf">Into&lt;U&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-OwnedWriteHalf">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-OwnedWriteHalf">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In tokio::net::tcp</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">tokio</a>::<wbr><a href="../index.html">net</a>::<wbr><a href="index.html">tcp</a>::<wbr><a class="struct" href="#">OwnedWriteHalf</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/tokio/net/tcp/split_owned.rs.html#54-57">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 OwnedWriteHalf { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Owned write half of a <a href="../struct.TcpStream.html"><code>TcpStream</code></a>, created by <a href="../struct.TcpStream.html#method.into_split"><code>into_split</code></a>.</p>
<p>Note that in the <a href="../../io/trait.AsyncWrite.html"><code>AsyncWrite</code></a> implementation of this type, <a href="../../io/trait.AsyncWrite.html#tymethod.poll_shutdown"><code>poll_shutdown</code></a> will
shut down the TCP stream in the write direction. Dropping the write half
will also shut down the write half of the TCP stream.</p>
<p>Writing to an <code>OwnedWriteHalf</code> is usually done using the convenience methods found
on the <a href="../../io/trait.AsyncWriteExt.html"><code>AsyncWriteExt</code></a> trait.</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-OwnedWriteHalf" class="impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#340-444">source</a><a href="#impl-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.reunite" class="method has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#346-348">source</a><h4 class="code-header">pub fn <a href="#method.reunite" class="fnname">reunite</a>(self, other: <a class="struct" href="struct.OwnedReadHalf.html" title="struct tokio::net::tcp::OwnedReadHalf">OwnedReadHalf</a>) -&gt; Result&lt;<a class="struct" href="../struct.TcpStream.html" title="struct tokio::net::TcpStream">TcpStream</a>, <a class="struct" href="struct.ReuniteError.html" title="struct tokio::net::tcp::ReuniteError">ReuniteError</a>&gt;</h4></section></summary><div class="docblock"><p>Attempts to put the two halves of a <code>TcpStream</code> back together and
recover the original socket. Succeeds only if the two halves
originated from the same call to <a href="../struct.TcpStream.html#method.into_split"><code>into_split</code></a>.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.forget" class="method has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#353-356">source</a><h4 class="code-header">pub fn <a href="#method.forget" class="fnname">forget</a>(self)</h4></section></summary><div class="docblock"><p>Destroys the write half, but don’t close the write half of the stream
until the read half is dropped. If the read half has already been
dropped, this closes the stream.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.ready" class="method has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#378-380">source</a><h4 class="code-header">pub async fn <a href="#method.ready" class="fnname">ready</a>(&amp;self, interest: <a class="struct" href="../../io/struct.Interest.html" title="struct tokio::io::Interest">Interest</a>) -&gt; Result&lt;<a class="struct" href="../../io/struct.Ready.html" title="struct tokio::io::Ready">Ready</a>&gt;</h4></section></summary><div class="docblock"><p>Waits for any of the requested ready states.</p>
<p>This function is usually paired with <code>try_read()</code> or <code>try_write()</code>. It
can be used to concurrently read / write to the same socket on a single
task without splitting the socket.</p>
<p>The function may complete without the socket being ready. This is a
false-positive and attempting an operation will return with
<code>io::ErrorKind::WouldBlock</code>. The function can also return with an empty
<a href="../../io/struct.Ready.html" title="Ready"><code>Ready</code></a> set, so you should always check the returned value and possibly
wait again if the requested states are not set.</p>
<p>This function is equivalent to <a href="../struct.TcpStream.html#method.ready" title="TcpStream::ready"><code>TcpStream::ready</code></a>.</p>
<h5 id="cancel-safety"><a href="#cancel-safety">Cancel safety</a></h5>
<p>This method is cancel safe. Once a readiness event occurs, the method
will continue to return immediately until the readiness event is
consumed by an attempt to read or write that fails with <code>WouldBlock</code> or
<code>Poll::Pending</code>.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.writable" class="method has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#393-395">source</a><h4 class="code-header">pub async fn <a href="#method.writable" class="fnname">writable</a>(&amp;self) -&gt; Result&lt;()&gt;</h4></section></summary><div class="docblock"><p>Waits for the socket to become writable.</p>
<p>This function is equivalent to <code>ready(Interest::WRITABLE)</code> and is usually
paired with <code>try_write()</code>.</p>
<h5 id="cancel-safety-1"><a href="#cancel-safety-1">Cancel safety</a></h5>
<p>This method is cancel safe. Once a readiness event occurs, the method
will continue to return immediately until the readiness event is
consumed by an attempt to write that fails with <code>WouldBlock</code> or
<code>Poll::Pending</code>.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_write" class="method has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#410-412">source</a><h4 class="code-header">pub fn <a href="#method.try_write" class="fnname">try_write</a>(&amp;self, buf: &amp;[u8]) -&gt; Result&lt;usize&gt;</h4></section></summary><div class="docblock"><p>Tries to write a buffer to the stream, returning how many bytes were
written.</p>
<p>The function will attempt to write the entire contents of <code>buf</code>, but
only part of the buffer may be written.</p>
<p>This function is usually paired with <code>writable()</code>.</p>
<h5 id="return"><a href="#return">Return</a></h5>
<p>If data is successfully written, <code>Ok(n)</code> is returned, where <code>n</code> is the
number of bytes written. If the stream is not ready to write data,
<code>Err(io::ErrorKind::WouldBlock)</code> is returned.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_write_vectored" class="method has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#431-433">source</a><h4 class="code-header">pub fn <a href="#method.try_write_vectored" class="fnname">try_write_vectored</a>(&amp;self, bufs: &amp;[IoSlice&lt;'_&gt;]) -&gt; Result&lt;usize&gt;</h4></section></summary><div class="docblock"><p>Tries to write several buffers to the stream, returning how many bytes
were written.</p>
<p>Data is written from each buffer in order, with the final buffer read
from possible being only partially consumed. This method behaves
equivalently to a single call to <a href="struct.OwnedWriteHalf.html#method.try_write"><code>try_write()</code></a> with concatenated
buffers.</p>
<p>This function is usually paired with <code>writable()</code>.</p>
<h5 id="return-1"><a href="#return-1">Return</a></h5>
<p>If data is successfully written, <code>Ok(n)</code> is returned, where <code>n</code> is the
number of bytes written. If the stream is not ready to write data,
<code>Err(io::ErrorKind::WouldBlock)</code> is returned.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.peer_addr" class="method has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#436-438">source</a><h4 class="code-header">pub fn <a href="#method.peer_addr" class="fnname">peer_addr</a>(&amp;self) -&gt; Result&lt;SocketAddr&gt;</h4></section></summary><div class="docblock"><p>Returns the remote address that this stream is connected to.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.local_addr" class="method has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#441-443">source</a><h4 class="code-header">pub fn <a href="#method.local_addr" class="fnname">local_addr</a>(&amp;self) -&gt; Result&lt;SocketAddr&gt;</h4></section></summary><div class="docblock"><p>Returns the local address that this stream is bound to.</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-AsRef%3CTcpStream%3E-for-OwnedWriteHalf" class="impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#497-501">source</a><a href="#impl-AsRef%3CTcpStream%3E-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl AsRef&lt;<a class="struct" href="../struct.TcpStream.html" title="struct tokio::net::TcpStream">TcpStream</a>&gt; for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_ref" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#498-500">source</a><a href="#method.as_ref" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_ref</a>(&amp;self) -&gt; &amp;<a class="struct" href="../struct.TcpStream.html" title="struct tokio::net::TcpStream">TcpStream</a></h4></section></summary><div class='docblock'>Converts this type into a shared reference of the (usually inferred) input type.</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-AsyncWrite-for-OwnedWriteHalf" class="impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#454-489">source</a><a href="#impl-AsyncWrite-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="../../io/trait.AsyncWrite.html" title="trait tokio::io::AsyncWrite">AsyncWrite</a> for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></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/tokio/net/tcp/split_owned.rs.html#455-461">source</a><a href="#method.poll_write" class="anchor"></a><h4 class="code-header">fn <a href="../../io/trait.AsyncWrite.html#tymethod.poll_write" class="fnname">poll_write</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut Self&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;buf: &amp;[u8]<br>) -&gt; Poll&lt;Result&lt;usize&gt;&gt;</h4></section></summary><div class='docblock'>Attempt to write bytes from <code>buf</code> into the object. <a href="../../io/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/tokio/net/tcp/split_owned.rs.html#463-469">source</a><a href="#method.poll_write_vectored" class="anchor"></a><h4 class="code-header">fn <a href="../../io/trait.AsyncWrite.html#method.poll_write_vectored" class="fnname">poll_write_vectored</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;self: Pin&lt;&amp;mut Self&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;bufs: &amp;[IoSlice&lt;'_&gt;]<br>) -&gt; Poll&lt;Result&lt;usize&gt;&gt;</h4></section></summary><div class='docblock'>Like <a href="../../io/trait.AsyncWrite.html#tymethod.poll_write"><code>poll_write</code></a>, except that it writes from a slice of buffers. <a href="../../io/trait.AsyncWrite.html#method.poll_write_vectored">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.is_write_vectored" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#471-473">source</a><a href="#method.is_write_vectored" class="anchor"></a><h4 class="code-header">fn <a href="../../io/trait.AsyncWrite.html#method.is_write_vectored" class="fnname">is_write_vectored</a>(&amp;self) -&gt; bool</h4></section></summary><div class='docblock'>Determines if this writer has an efficient <a href="../../io/trait.AsyncWrite.html#method.poll_write_vectored"><code>poll_write_vectored</code></a>
implementation. <a href="../../io/trait.AsyncWrite.html#method.is_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/tokio/net/tcp/split_owned.rs.html#476-479">source</a><a href="#method.poll_flush" class="anchor"></a><h4 class="code-header">fn <a href="../../io/trait.AsyncWrite.html#tymethod.poll_flush" class="fnname">poll_flush</a>(self: Pin&lt;&amp;mut Self&gt;, _: &amp;mut Context&lt;'_&gt;) -&gt; Poll&lt;Result&lt;()&gt;&gt;</h4></section></summary><div class='docblock'>Attempts to flush the object, ensuring that any buffered data reach
their destination. <a href="../../io/trait.AsyncWrite.html#tymethod.poll_flush">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_shutdown" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#482-488">source</a><a href="#method.poll_shutdown" class="anchor"></a><h4 class="code-header">fn <a href="../../io/trait.AsyncWrite.html#tymethod.poll_shutdown" class="fnname">poll_shutdown</a>(self: Pin&lt;&amp;mut Self&gt;, _: &amp;mut Context&lt;'_&gt;) -&gt; Poll&lt;Result&lt;()&gt;&gt;</h4></section></summary><div class='docblock'>Initiates or attempts to shut down this writer, returning success when
the I/O connection has completely shut down. <a href="../../io/trait.AsyncWrite.html#tymethod.poll_shutdown">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-OwnedWriteHalf" class="impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#53">source</a><a href="#impl-Debug-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl Debug for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></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/tokio/net/tcp/split_owned.rs.html#53">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a class="fnname">fmt</a>(&amp;self, f: &amp;mut Formatter&lt;'_&gt;) -&gt; Result</h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Drop-for-OwnedWriteHalf" class="impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#446-452">source</a><a href="#impl-Drop-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl Drop for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../../src/tokio/net/tcp/split_owned.rs.html#447-451">source</a><a href="#method.drop" class="anchor"></a><h4 class="code-header">fn <a class="fnname">drop</a>(&amp;mut self)</h4></section></summary><div class='docblock'>Executes the destructor for this type. <a>Read more</a></div></details></div></details></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-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl RefUnwindSafe for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></h3></section><section id="impl-Send-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-Send-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl Send for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></h3></section><section id="impl-Sync-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-Sync-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl Sync for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></h3></section><section id="impl-Unpin-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-Unpin-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl Unpin for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></h3></section><section id="impl-UnwindSafe-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-UnwindSafe-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl UnwindSafe for <a class="struct" href="struct.OwnedWriteHalf.html" title="struct tokio::net::tcp::OwnedWriteHalf">OwnedWriteHalf</a></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-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-Any-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Any for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a class="fnname">type_id</a>(&amp;self) -&gt; TypeId</h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-Borrow%3CT%3E-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; Borrow&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow</a>(&amp;self) -&gt; &amp;T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-BorrowMut%3CT%3E-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; BorrowMut&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?Sized,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a class="fnname">borrow_mut</a>(&amp;mut self) -&gt; &amp;mut T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-From%3CT%3E-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; From&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-Into%3CU%3E-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; Into&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: From&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code>[From]&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-TryFrom%3CU%3E-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryFrom&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: Into&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Infallible</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_from</a>(value: U) -&gt; Result&lt;T, &lt;T as TryFrom&lt;U&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-OwnedWriteHalf" class="impl has-srclink"><a href="#impl-TryInto%3CU%3E-for-OwnedWriteHalf" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryInto&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: TryFrom&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = &lt;U as TryFrom&lt;T&gt;&gt;::Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_into</a>(self) -&gt; Result&lt;U, &lt;U as TryFrom&lt;T&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../../" data-current-crate="tokio" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>