blob: ec10e7e0e36f0214d0dbb5747acf47f20aa4d641 [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="A Unix socket which can accept connections from other Unix sockets."><meta name="keywords" content="rust, rustlang, rust-lang, UnixListener"><title>UnixListener in tokio::net - 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="#">UnixListener</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><li><a href="#method.accept">accept</a></li><li><a href="#method.bind">bind</a></li><li><a href="#method.from_std">from_std</a></li><li><a href="#method.into_std">into_std</a></li><li><a href="#method.local_addr">local_addr</a></li><li><a href="#method.poll_accept">poll_accept</a></li><li><a href="#method.take_error">take_error</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block"><li><a href="#impl-AsRawFd-for-UnixListener">AsRawFd</a></li><li><a href="#impl-Debug-for-UnixListener">Debug</a></li><li><a href="#impl-TryFrom%3CUnixListener%3E-for-UnixListener">TryFrom&lt;UnixListener&gt;</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-UnixListener">RefUnwindSafe</a></li><li><a href="#impl-Send-for-UnixListener">Send</a></li><li><a href="#impl-Sync-for-UnixListener">Sync</a></li><li><a href="#impl-Unpin-for-UnixListener">Unpin</a></li><li><a href="#impl-UnwindSafe-for-UnixListener">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-UnixListener">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-UnixListener">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-UnixListener">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-UnixListener">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-UnixListener">Into&lt;U&gt;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-UnixListener">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-UnixListener">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In tokio::net</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 class="struct" href="#">UnixListener</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/unix/listener.rs.html#47-49">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 UnixListener { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A Unix socket which can accept connections from other Unix sockets.</p>
<p>You can accept a new connection by using the <a href="struct.UnixListener.html#method.accept"><code>accept</code></a> method.</p>
<p>A <code>UnixListener</code> can be turned into a <code>Stream</code> with <a href="https://docs.rs/tokio-stream/0.1/tokio_stream/wrappers/struct.UnixListenerStream.html"><code>UnixListenerStream</code></a>.</p>
<h2 id="errors"><a href="#errors">Errors</a></h2>
<p>Note that accepting a connection can lead to various errors and not all
of them are necessarily fatal ‒ for example having too many open file
descriptors or the other side closing the connection while it waits in
an accept queue. These would terminate the stream if not handled in any
way.</p>
<h2 id="examples"><a href="#examples">Examples</a></h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>tokio::net::UnixListener;
<span class="attribute">#[tokio::main]
</span><span class="kw">async fn </span>main() {
<span class="kw">let </span>listener = UnixListener::bind(<span class="string">&quot;/path/to/the/socket&quot;</span>).unwrap();
<span class="kw">loop </span>{
<span class="kw">match </span>listener.accept().<span class="kw">await </span>{
<span class="prelude-val">Ok</span>((stream, _addr)) =&gt; {
<span class="macro">println!</span>(<span class="string">&quot;new client!&quot;</span>);
}
<span class="prelude-val">Err</span>(e) =&gt; { <span class="comment">/* connection failed */ </span>}
}
}
}</code></pre></div>
</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-UnixListener" class="impl has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#52-166">source</a><a href="#impl-UnixListener" class="anchor"></a><h3 class="code-header">impl <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.bind" class="method has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#64-71">source</a><h4 class="code-header">pub fn <a href="#method.bind" class="fnname">bind</a>&lt;P&gt;(path: P) -&gt; Result&lt;<a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;P: AsRef&lt;Path&gt;,</span></h4></section></summary><div class="docblock"><p>Creates a new <code>UnixListener</code> bound to the specified path.</p>
<h5 id="panics"><a href="#panics">Panics</a></h5>
<p>This function panics if it is not called from within a runtime with
IO enabled.</p>
<p>The runtime is usually set implicitly when this function is called
from a future driven by a tokio runtime, otherwise runtime can be set
explicitly with <a href="../runtime/struct.Runtime.html#method.enter"><code>Runtime::enter</code></a> function.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from_std" class="method has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#89-93">source</a><h4 class="code-header">pub fn <a href="#method.from_std" class="fnname">from_std</a>(listener: UnixListener) -&gt; Result&lt;<a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a>&gt;</h4></section></summary><div class="docblock"><p>Creates new <code>UnixListener</code> from a <code>std::os::unix::net::UnixListener </code>.</p>
<p>This function is intended to be used to wrap a UnixListener from the
standard library in the Tokio equivalent. The conversion assumes
nothing about the underlying listener; it is left up to the user to set
it in non-blocking mode.</p>
<h5 id="panics-1"><a href="#panics-1">Panics</a></h5>
<p>This function panics if it is not called from within a runtime with
IO enabled.</p>
<p>The runtime is usually set implicitly when this function is called
from a future driven by a tokio runtime, otherwise runtime can be set
explicitly with <a href="../runtime/struct.Runtime.html#method.enter"><code>Runtime::enter</code></a> function.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into_std" class="method has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#117-122">source</a><h4 class="code-header">pub fn <a href="#method.into_std" class="fnname">into_std</a>(self) -&gt; Result&lt;UnixListener&gt;</h4></section></summary><div class="docblock"><p>Turns a <a href="struct.UnixListener.html"><code>tokio::net::UnixListener</code></a> into a <a href="std::os::unix::net::UnixListener"><code>std::os::unix::net::UnixListener</code></a>.</p>
<p>The returned <a href="std::os::unix::net::UnixListener"><code>std::os::unix::net::UnixListener</code></a> will have nonblocking mode
set as <code>true</code>. Use <a href="fn@std::os::unix::net::UnixListener::set_nonblocking"><code>set_nonblocking</code></a> to change the blocking mode if needed.</p>
<h5 id="examples-1"><a href="#examples-1">Examples</a></h5>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>std::error::Error;
<span class="attribute">#[tokio::main]
</span><span class="kw">async fn </span>main() -&gt; <span class="prelude-ty">Result</span>&lt;(), Box&lt;<span class="kw">dyn </span>Error&gt;&gt; {
<span class="kw">let </span>tokio_listener = tokio::net::UnixListener::bind(<span class="string">&quot;127.0.0.1:0&quot;</span>)<span class="question-mark">?</span>;
<span class="kw">let </span>std_listener = tokio_listener.into_std()<span class="question-mark">?</span>;
std_listener.set_nonblocking(<span class="bool-val">false</span>)<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
</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/unix/listener.rs.html#125-127">source</a><h4 class="code-header">pub fn <a href="#method.local_addr" class="fnname">local_addr</a>(&amp;self) -&gt; Result&lt;<a class="struct" href="unix/struct.SocketAddr.html" title="struct tokio::net::unix::SocketAddr">SocketAddr</a>&gt;</h4></section></summary><div class="docblock"><p>Returns the local socket address of this listener.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.take_error" class="method has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#130-132">source</a><h4 class="code-header">pub fn <a href="#method.take_error" class="fnname">take_error</a>(&amp;self) -&gt; Result&lt;Option&lt;Error&gt;&gt;</h4></section></summary><div class="docblock"><p>Returns the value of the <code>SO_ERROR</code> option.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.accept" class="method has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#142-152">source</a><h4 class="code-header">pub async fn <a href="#method.accept" class="fnname">accept</a>(&amp;self) -&gt; Result&lt;(<a class="struct" href="struct.UnixStream.html" title="struct tokio::net::UnixStream">UnixStream</a>, <a class="struct" href="unix/struct.SocketAddr.html" title="struct tokio::net::unix::SocketAddr">SocketAddr</a>)&gt;</h4></section></summary><div class="docblock"><p>Accepts a new incoming connection to this listener.</p>
<h5 id="cancel-safety"><a href="#cancel-safety">Cancel safety</a></h5>
<p>This method is cancel safe. If the method is used as the event in a
<a href="../macro.select.html"><code>tokio::select!</code></a> statement and some other branch
completes first, then it is guaranteed that no new connections were
accepted by this method.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.poll_accept" class="method has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#160-165">source</a><h4 class="code-header">pub fn <a href="#method.poll_accept" class="fnname">poll_accept</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;cx: &amp;mut Context&lt;'_&gt;<br>) -&gt; Poll&lt;Result&lt;(<a class="struct" href="struct.UnixStream.html" title="struct tokio::net::UnixStream">UnixStream</a>, <a class="struct" href="unix/struct.SocketAddr.html" title="struct tokio::net::unix::SocketAddr">SocketAddr</a>)&gt;&gt;</h4></section></summary><div class="docblock"><p>Polls to accept a new incoming connection to this listener.</p>
<p>If there is no connection to accept, <code>Poll::Pending</code> is returned and the
current task will be notified by a waker. Note that on multiple calls
to <code>poll_accept</code>, only the <code>Waker</code> from the <code>Context</code> passed to the most
recent call is scheduled to receive a wakeup.</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-AsRawFd-for-UnixListener" class="impl has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#186-190">source</a><a href="#impl-AsRawFd-for-UnixListener" class="anchor"></a><h3 class="code-header">impl AsRawFd for <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.as_raw_fd" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#187-189">source</a><a href="#method.as_raw_fd" class="anchor"></a><h4 class="code-header">fn <a class="fnname">as_raw_fd</a>(&amp;self) -&gt; RawFd</h4></section></summary><div class='docblock'>Extracts the raw file descriptor. <a>Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-UnixListener" class="impl has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#180-184">source</a><a href="#impl-Debug-for-UnixListener" class="anchor"></a><h3 class="code-header">impl Debug for <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</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/unix/listener.rs.html#181-183">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-TryFrom%3CUnixListener%3E-for-UnixListener" class="impl has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#168-178">source</a><a href="#impl-TryFrom%3CUnixListener%3E-for-UnixListener" class="anchor"></a><h3 class="code-header">impl TryFrom&lt;UnixListener&gt; for <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/tokio/net/unix/listener.rs.html#175-177">source</a><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_from</a>(stream: UnixListener) -&gt; Result&lt;Self&gt;</h4></section></summary><div class="docblock"><p>Consumes stream, returning the tokio I/O object.</p>
<p>This is equivalent to
<a href="struct.UnixListener.html#method.from_std"><code>UnixListener::from_std(stream)</code></a>.</p>
</div></details><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> = Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</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-UnixListener" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-UnixListener" class="anchor"></a><h3 class="code-header">impl RefUnwindSafe for <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a></h3></section><section id="impl-Send-for-UnixListener" class="impl has-srclink"><a href="#impl-Send-for-UnixListener" class="anchor"></a><h3 class="code-header">impl Send for <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a></h3></section><section id="impl-Sync-for-UnixListener" class="impl has-srclink"><a href="#impl-Sync-for-UnixListener" class="anchor"></a><h3 class="code-header">impl Sync for <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a></h3></section><section id="impl-Unpin-for-UnixListener" class="impl has-srclink"><a href="#impl-Unpin-for-UnixListener" class="anchor"></a><h3 class="code-header">impl Unpin for <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</a></h3></section><section id="impl-UnwindSafe-for-UnixListener" class="impl has-srclink"><a href="#impl-UnwindSafe-for-UnixListener" class="anchor"></a><h3 class="code-header">impl UnwindSafe for <a class="struct" href="struct.UnixListener.html" title="struct tokio::net::UnixListener">UnixListener</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-UnixListener" class="impl has-srclink"><a href="#impl-Any-for-UnixListener" 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-UnixListener" class="impl has-srclink"><a href="#impl-Borrow%3CT%3E-for-UnixListener" 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-UnixListener" class="impl has-srclink"><a href="#impl-BorrowMut%3CT%3E-for-UnixListener" 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-UnixListener" class="impl has-srclink"><a href="#impl-From%3CT%3E-for-UnixListener" 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-UnixListener" class="impl has-srclink"><a href="#impl-Into%3CU%3E-for-UnixListener" 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-UnixListener" class="impl has-srclink"><a href="#impl-TryFrom%3CU%3E-for-UnixListener" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryFrom&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: Into&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-2" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-2" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = Infallible</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from-1" 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-1" 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-UnixListener" class="impl has-srclink"><a href="#impl-TryInto%3CU%3E-for-UnixListener" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; TryInto&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: TryFrom&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a class="associatedtype">Error</a> = &lt;U as TryFrom&lt;T&gt;&gt;::Error</h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="since rightside" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a class="fnname">try_into</a>(self) -&gt; Result&lt;U, &lt;U as TryFrom&lt;T&gt;&gt;::Error&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></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>