Sophie

Sophie

distrib > Mageia > 6 > armv7hl > media > core-updates > by-pkgid > 564935689ab5527f955e5449ded02799 > files > 4633

rust-doc-1.19.0-1.mga6.armv7hl.rpm

<!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 `UnixStream` struct in crate `std`.">
    <meta name="keywords" content="rust, rustlang, rust-lang, UnixStream">

    <title>std::os::unix::net::UnixStream - Rust</title>

    <link rel="stylesheet" type="text/css" href="../../../../normalize.css">
    <link rel="stylesheet" type="text/css" href="../../../../rustdoc.css">
    <link rel="stylesheet" type="text/css" href="../../../../main.css">
    

    <link rel="shortcut icon" href="https://doc.rust-lang.org/favicon.ico">
    
</head>
<body class="rustdoc struct">
    <!--[if lte IE 8]>
    <div class="warning">
        This old browser is unsupported and will most likely display funky
        things.
    </div>
    <![endif]-->

    

    <nav class="sidebar">
        <a href='../../../../std/index.html'><img src='https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png' alt='logo' width='100'></a>
        <p class='location'>Struct UnixStream</p><div class="block items"><ul><li><a href="#methods">Methods</a></li><li><a href="#implementations">Trait Implementations</a></li></ul></div><p class='location'><a href='../../../index.html'>std</a>::<wbr><a href='../../index.html'>os</a>::<wbr><a href='../index.html'>unix</a>::<wbr><a href='index.html'>net</a></p><script>window.sidebarCurrent = {name: 'UnixStream', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script>
    </nav>

    <nav class="sub">
        <form class="search-form js-only">
            <div class="search-container">
                <input class="search-input" name="search"
                       autocomplete="off"
                       placeholder="Click or press ‘S’ to search, ‘?’ for more options…"
                       type="search">
            </div>
        </form>
    </nav>

    <section id='main' class="content">
<h1 class='fqn'><span class='in-band'>Struct <a href='../../../index.html'>std</a>::<wbr><a href='../../index.html'>os</a>::<wbr><a href='../index.html'>unix</a>::<wbr><a href='index.html'>net</a>::<wbr><a class="struct" href=''>UnixStream</a></span><span class='out-of-band'><span class='since' title='Stable since Rust version 1.10.0'>1.10.0</span><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/std/sys/unix/ext/net.rs.html#256' title='goto source code'>[src]</a></span></h1>
<pre class='rust struct'>pub struct UnixStream(_);</pre><div class='docblock'><p>A Unix stream socket.</p>

<h1 id='examples' class='section-header'><a href='#examples'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">io</span>::<span class="ident">prelude</span>::<span class="kw-2">*</span>;

<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">stream</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/path/to/my/socket&quot;</span>).<span class="ident">unwrap</span>();
<span class="ident">stream</span>.<span class="ident">write_all</span>(<span class="string">b&quot;hello world&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">response</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">new</span>();
<span class="ident">stream</span>.<span class="ident">read_to_string</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">response</span>).<span class="ident">unwrap</span>();
<span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;{}&quot;</span>, <span class="ident">response</span>);<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0Ause%20std%3A%3Aio%3A%3Aprelude%3A%3A*%3B%0A%0Alet%20mut%20stream%20%3D%20UnixStream%3A%3Aconnect(%22%2Fpath%2Fto%2Fmy%2Fsocket%22).unwrap()%3B%0Astream.write_all(b%22hello%20world%22).unwrap()%3B%0Alet%20mut%20response%20%3D%20String%3A%3Anew()%3B%0Astream.read_to_string(%26mut%20response).unwrap()%3B%0Aprintln!(%22%7B%7D%22%2C%20response)%3B%0A%7D">Run</a></pre>
</div><h2 id='methods'>Methods</h2><h3 class='impl'><span class='in-band'><code>impl <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#273-511' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.connect' class="method"><span id='connect.v' class='invisible'><code>fn <a href='#method.connect' class='fnname'>connect</a>&lt;P:&nbsp;<a class="trait" href="../../../../std/convert/trait.AsRef.html" title="trait std::convert::AsRef">AsRef</a>&lt;<a class="struct" href="../../../../std/path/struct.Path.html" title="struct std::path::Path">Path</a>&gt;&gt;(path: P) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a>&gt;</code></span></h4>
<div class='docblock'><p>Connects to the socket named by <code>path</code>.</p>

<h1 id='examples-1' class='section-header'><a href='#examples-1'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="kw">match</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>) {
    <span class="prelude-val">Ok</span>(<span class="ident">sock</span>) <span class="op">=&gt;</span> <span class="ident">sock</span>,
    <span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=&gt;</span> {
        <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;Couldn&#39;t connect: {:?}&quot;</span>, <span class="ident">e</span>);
        <span class="kw">return</span>
    }
};<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0A%0Alet%20socket%20%3D%20match%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22)%20%7B%0A%20%20%20%20Ok(sock)%20%3D%3E%20sock%2C%0A%20%20%20%20Err(e)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20println!(%22Couldn't%20connect%3A%20%7B%3A%3F%7D%22%2C%20e)%3B%0A%20%20%20%20%20%20%20%20return%0A%20%20%20%20%7D%0A%7D%3B%0A%7D">Run</a></pre>
</div><h4 id='method.pair' class="method"><span id='pair.v' class='invisible'><code>fn <a href='#method.pair' class='fnname'>pair</a>() -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">(</a><a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a>, <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a><a class="primitive" href="../../../primitive.tuple.html">)</a>&gt;</code></span></h4>
<div class='docblock'><p>Creates an unnamed pair of connected sockets.</p>

<p>Returns two <code>UnixStream</code>s which are connected to each other.</p>

<h1 id='examples-2' class='section-header'><a href='#examples-2'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;

<span class="kw">let</span> (<span class="ident">sock1</span>, <span class="ident">sock2</span>) <span class="op">=</span> <span class="kw">match</span> <span class="ident">UnixStream</span>::<span class="ident">pair</span>() {
    <span class="prelude-val">Ok</span>((<span class="ident">sock1</span>, <span class="ident">sock2</span>)) <span class="op">=&gt;</span> (<span class="ident">sock1</span>, <span class="ident">sock2</span>),
    <span class="prelude-val">Err</span>(<span class="ident">e</span>) <span class="op">=&gt;</span> {
        <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;Couldn&#39;t create a pair of sockets: {:?}&quot;</span>, <span class="ident">e</span>);
        <span class="kw">return</span>
    }
};<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0A%0Alet%20(sock1%2C%20sock2)%20%3D%20match%20UnixStream%3A%3Apair()%20%7B%0A%20%20%20%20Ok((sock1%2C%20sock2))%20%3D%3E%20(sock1%2C%20sock2)%2C%0A%20%20%20%20Err(e)%20%3D%3E%20%7B%0A%20%20%20%20%20%20%20%20println!(%22Couldn't%20create%20a%20pair%20of%20sockets%3A%20%7B%3A%3F%7D%22%2C%20e)%3B%0A%20%20%20%20%20%20%20%20return%0A%20%20%20%20%7D%0A%7D%3B%0A%7D">Run</a></pre>
</div><h4 id='method.try_clone' class="method"><span id='try_clone.v' class='invisible'><code>fn <a href='#method.try_clone' class='fnname'>try_clone</a>(&amp;self) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a>&gt;</code></span></h4>
<div class='docblock'><p>Creates a new independently owned handle to the underlying socket.</p>

<p>The returned <code>UnixStream</code> is a reference to the same stream that this
object references. Both handles will read and write the same stream of
data, and options set on one stream will be propogated to the other
stream.</p>

<h1 id='examples-3' class='section-header'><a href='#examples-3'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">sock_copy</span> <span class="op">=</span> <span class="ident">socket</span>.<span class="ident">try_clone</span>().<span class="ident">expect</span>(<span class="string">&quot;Couldn&#39;t clone socket&quot;</span>);<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Alet%20sock_copy%20%3D%20socket.try_clone().expect(%22Couldn't%20clone%20socket%22)%3B%0A%7D">Run</a></pre>
</div><h4 id='method.local_addr' class="method"><span id='local_addr.v' class='invisible'><code>fn <a href='#method.local_addr' class='fnname'>local_addr</a>(&amp;self) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="struct" href="../../../../std/os/unix/net/struct.SocketAddr.html" title="struct std::os::unix::net::SocketAddr">SocketAddr</a>&gt;</code></span></h4>
<div class='docblock'><p>Returns the socket address of the local half of this connection.</p>

<h1 id='examples-4' class='section-header'><a href='#examples-4'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">addr</span> <span class="op">=</span> <span class="ident">socket</span>.<span class="ident">local_addr</span>().<span class="ident">expect</span>(<span class="string">&quot;Couldn&#39;t get local address&quot;</span>);<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Alet%20addr%20%3D%20socket.local_addr().expect(%22Couldn't%20get%20local%20address%22)%3B%0A%7D">Run</a></pre>
</div><h4 id='method.peer_addr' class="method"><span id='peer_addr.v' class='invisible'><code>fn <a href='#method.peer_addr' class='fnname'>peer_addr</a>(&amp;self) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="struct" href="../../../../std/os/unix/net/struct.SocketAddr.html" title="struct std::os::unix::net::SocketAddr">SocketAddr</a>&gt;</code></span></h4>
<div class='docblock'><p>Returns the socket address of the remote half of this connection.</p>

<h1 id='examples-5' class='section-header'><a href='#examples-5'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">addr</span> <span class="op">=</span> <span class="ident">socket</span>.<span class="ident">peer_addr</span>().<span class="ident">expect</span>(<span class="string">&quot;Couldn&#39;t get peer address&quot;</span>);<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Alet%20addr%20%3D%20socket.peer_addr().expect(%22Couldn't%20get%20peer%20address%22)%3B%0A%7D">Run</a></pre>
</div><h4 id='method.set_read_timeout' class="method"><span id='set_read_timeout.v' class='invisible'><code>fn <a href='#method.set_read_timeout' class='fnname'>set_read_timeout</a>(&amp;self, timeout: <a class="enum" href="../../../../std/option/enum.Option.html" title="enum std::option::Option">Option</a>&lt;<a class="struct" href="../../../../std/time/struct.Duration.html" title="struct std::time::Duration">Duration</a>&gt;) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code></span></h4>
<div class='docblock'><p>Sets the read timeout for the socket.</p>

<p>If the provided value is <a href="../../../../std/option/enum.Option.html#variant.None"><code>None</code></a>, then <a href="../../../../std/io/trait.Read.html#tymethod.read"><code>read</code></a> calls will block
indefinitely. It is an error to pass the zero <a href="../../../../std/time/struct.Duration.html"><code>Duration</code></a> to this
method.</p>

<h1 id='examples-6' class='section-header'><a href='#examples-6'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">time</span>::<span class="ident">Duration</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="ident">socket</span>.<span class="ident">set_read_timeout</span>(<span class="prelude-val">Some</span>(<span class="ident">Duration</span>::<span class="ident">new</span>(<span class="number">1</span>, <span class="number">0</span>))).<span class="ident">expect</span>(<span class="string">&quot;Couldn&#39;t set read timeout&quot;</span>);<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0Ause%20std%3A%3Atime%3A%3ADuration%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Asocket.set_read_timeout(Some(Duration%3A%3Anew(1%2C%200))).expect(%22Couldn't%20set%20read%20timeout%22)%3B%0A%7D">Run</a></pre>
</div><h4 id='method.set_write_timeout' class="method"><span id='set_write_timeout.v' class='invisible'><code>fn <a href='#method.set_write_timeout' class='fnname'>set_write_timeout</a>(&amp;self, timeout: <a class="enum" href="../../../../std/option/enum.Option.html" title="enum std::option::Option">Option</a>&lt;<a class="struct" href="../../../../std/time/struct.Duration.html" title="struct std::time::Duration">Duration</a>&gt;) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code></span></h4>
<div class='docblock'><p>Sets the write timeout for the socket.</p>

<p>If the provided value is <a href="../../../../std/option/enum.Option.html#variant.None"><code>None</code></a>, then [<code>write</code>] calls will block
indefinitely. It is an error to pass the zero <a href="../../../../std/time/struct.Duration.html"><code>Duration</code></a> to this
method.</p>

<h1 id='examples-7' class='section-header'><a href='#examples-7'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">time</span>::<span class="ident">Duration</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="ident">socket</span>.<span class="ident">set_write_timeout</span>(<span class="prelude-val">Some</span>(<span class="ident">Duration</span>::<span class="ident">new</span>(<span class="number">1</span>, <span class="number">0</span>))).<span class="ident">expect</span>(<span class="string">&quot;Couldn&#39;t set write timeout&quot;</span>);<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0Ause%20std%3A%3Atime%3A%3ADuration%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Asocket.set_write_timeout(Some(Duration%3A%3Anew(1%2C%200))).expect(%22Couldn't%20set%20write%20timeout%22)%3B%0A%7D">Run</a></pre>
</div><h4 id='method.read_timeout' class="method"><span id='read_timeout.v' class='invisible'><code>fn <a href='#method.read_timeout' class='fnname'>read_timeout</a>(&amp;self) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="enum" href="../../../../std/option/enum.Option.html" title="enum std::option::Option">Option</a>&lt;<a class="struct" href="../../../../std/time/struct.Duration.html" title="struct std::time::Duration">Duration</a>&gt;&gt;</code></span></h4>
<div class='docblock'><p>Returns the read timeout of this socket.</p>

<h1 id='examples-8' class='section-header'><a href='#examples-8'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">time</span>::<span class="ident">Duration</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="ident">socket</span>.<span class="ident">set_read_timeout</span>(<span class="prelude-val">Some</span>(<span class="ident">Duration</span>::<span class="ident">new</span>(<span class="number">1</span>, <span class="number">0</span>))).<span class="ident">expect</span>(<span class="string">&quot;Couldn&#39;t set read timeout&quot;</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">socket</span>.<span class="ident">read_timeout</span>().<span class="ident">unwrap</span>(), <span class="prelude-val">Some</span>(<span class="ident">Duration</span>::<span class="ident">new</span>(<span class="number">1</span>, <span class="number">0</span>)));<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0Ause%20std%3A%3Atime%3A%3ADuration%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Asocket.set_read_timeout(Some(Duration%3A%3Anew(1%2C%200))).expect(%22Couldn't%20set%20read%20timeout%22)%3B%0Aassert_eq!(socket.read_timeout().unwrap()%2C%20Some(Duration%3A%3Anew(1%2C%200)))%3B%0A%7D">Run</a></pre>
</div><h4 id='method.write_timeout' class="method"><span id='write_timeout.v' class='invisible'><code>fn <a href='#method.write_timeout' class='fnname'>write_timeout</a>(&amp;self) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="enum" href="../../../../std/option/enum.Option.html" title="enum std::option::Option">Option</a>&lt;<a class="struct" href="../../../../std/time/struct.Duration.html" title="struct std::time::Duration">Duration</a>&gt;&gt;</code></span></h4>
<div class='docblock'><p>Returns the write timeout of this socket.</p>

<h1 id='examples-9' class='section-header'><a href='#examples-9'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">time</span>::<span class="ident">Duration</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="ident">socket</span>.<span class="ident">set_write_timeout</span>(<span class="prelude-val">Some</span>(<span class="ident">Duration</span>::<span class="ident">new</span>(<span class="number">1</span>, <span class="number">0</span>))).<span class="ident">expect</span>(<span class="string">&quot;Couldn&#39;t set write timeout&quot;</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">socket</span>.<span class="ident">write_timeout</span>().<span class="ident">unwrap</span>(), <span class="prelude-val">Some</span>(<span class="ident">Duration</span>::<span class="ident">new</span>(<span class="number">1</span>, <span class="number">0</span>)));<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0Ause%20std%3A%3Atime%3A%3ADuration%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Asocket.set_write_timeout(Some(Duration%3A%3Anew(1%2C%200))).expect(%22Couldn't%20set%20write%20timeout%22)%3B%0Aassert_eq!(socket.write_timeout().unwrap()%2C%20Some(Duration%3A%3Anew(1%2C%200)))%3B%0A%7D">Run</a></pre>
</div><h4 id='method.set_nonblocking' class="method"><span id='set_nonblocking.v' class='invisible'><code>fn <a href='#method.set_nonblocking' class='fnname'>set_nonblocking</a>(&amp;self, nonblocking: <a class="primitive" href="../../../primitive.bool.html">bool</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code></span></h4>
<div class='docblock'><p>Moves the socket into or out of nonblocking mode.</p>

<h1 id='examples-10' class='section-header'><a href='#examples-10'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="ident">socket</span>.<span class="ident">set_nonblocking</span>(<span class="bool-val">true</span>).<span class="ident">expect</span>(<span class="string">&quot;Couldn&#39;t set nonblocking&quot;</span>);<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Asocket.set_nonblocking(true).expect(%22Couldn't%20set%20nonblocking%22)%3B%0A%7D">Run</a></pre>
</div><h4 id='method.take_error' class="method"><span id='take_error.v' class='invisible'><code>fn <a href='#method.take_error' class='fnname'>take_error</a>(&amp;self) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="enum" href="../../../../std/option/enum.Option.html" title="enum std::option::Option">Option</a>&lt;<a class="struct" href="../../../../std/io/struct.Error.html" title="struct std::io::Error">Error</a>&gt;&gt;</code></span></h4>
<div class='docblock'><p>Returns the value of the <code>SO_ERROR</code> option.</p>

<h1 id='examples-11' class='section-header'><a href='#examples-11'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Ok</span>(<span class="prelude-val">Some</span>(<span class="ident">err</span>)) <span class="op">=</span> <span class="ident">socket</span>.<span class="ident">take_error</span>() {
    <span class="macro">println</span><span class="macro">!</span>(<span class="string">&quot;Got error: {:?}&quot;</span>, <span class="ident">err</span>);
}<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Aif%20let%20Ok(Some(err))%20%3D%20socket.take_error()%20%7B%0A%20%20%20%20println!(%22Got%20error%3A%20%7B%3A%3F%7D%22%2C%20err)%3B%0A%7D%0A%7D">Run</a></pre>
</div><h4 id='method.shutdown' class="method"><span id='shutdown.v' class='invisible'><code>fn <a href='#method.shutdown' class='fnname'>shutdown</a>(&amp;self, how: <a class="enum" href="../../../../std/net/enum.Shutdown.html" title="enum std::net::Shutdown">Shutdown</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code></span></h4>
<div class='docblock'><p>Shuts down the read, write, or both halves of this connection.</p>

<p>This function will cause all pending and future I/O calls on the
specified portions to immediately return with an appropriate value
(see the documentation of <a href="../../../../std/net/enum.Shutdown.html"><code>Shutdown</code></a>).</p>

<h1 id='examples-12' class='section-header'><a href='#examples-12'>Examples</a></h1>
<pre class="rust rust-example-rendered">
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">os</span>::<span class="ident">unix</span>::<span class="ident">net</span>::<span class="ident">UnixStream</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">net</span>::<span class="ident">Shutdown</span>;

<span class="kw">let</span> <span class="ident">socket</span> <span class="op">=</span> <span class="ident">UnixStream</span>::<span class="ident">connect</span>(<span class="string">&quot;/tmp/sock&quot;</span>).<span class="ident">unwrap</span>();
<span class="ident">socket</span>.<span class="ident">shutdown</span>(<span class="ident">Shutdown</span>::<span class="ident">Both</span>).<span class="ident">expect</span>(<span class="string">&quot;shutdown function failed&quot;</span>);<a class="test-arrow" target="_blank" href="https://play.rust-lang.org/?code=fn%20main()%20%7B%0Ause%20std%3A%3Aos%3A%3Aunix%3A%3Anet%3A%3AUnixStream%3B%0Ause%20std%3A%3Anet%3A%3AShutdown%3B%0A%0Alet%20socket%20%3D%20UnixStream%3A%3Aconnect(%22%2Ftmp%2Fsock%22).unwrap()%3B%0Asocket.shutdown(Shutdown%3A%3ABoth).expect(%22shutdown%20function%20failed%22)%3B%0A%7D">Run</a></pre>
</div></div><h2 id='implementations'>Trait Implementations</h2><h3 class='impl'><span class='in-band'><code>impl <a class="trait" href="../../../../std/fmt/trait.Debug.html" title="trait std::fmt::Debug">Debug</a> for <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#259-271' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.fmt' class="method"><span id='fmt.v' class='invisible'><code>fn <a href='../../../../std/fmt/trait.Debug.html#tymethod.fmt' class='fnname'>fmt</a>(&amp;self, fmt: &amp;mut <a class="struct" href="../../../../std/fmt/struct.Formatter.html" title="struct std::fmt::Formatter">Formatter</a>) -&gt; <a class="type" href="../../../../std/fmt/type.Result.html" title="type std::fmt::Result">Result</a></code></span></h4>
<div class='docblock'><p>Formats the value using the given formatter.</p>
</div></div><h3 class='impl'><span class='in-band'><code>impl <a class="trait" href="../../../../std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#514-522' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.read' class="method"><span id='read.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#tymethod.read' class='fnname'>read</a>(&amp;mut self, buf: <a class="primitive" href="../../../primitive.slice.html">&amp;mut [</a><a class="primitive" href="../../../primitive.u8.html">u8</a><a class="primitive" href="../../../primitive.slice.html">]</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.usize.html">usize</a>&gt;</code></span></h4>
<div class='docblock'><p>Pull some bytes from this source into the specified buffer, returning how many bytes were read. <a href="../../../../std/io/trait.Read.html#tymethod.read">Read more</a></p>
</div><h4 id='method.read_to_end' class="method"><span id='read_to_end.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.read_to_end' class='fnname'>read_to_end</a>(&amp;mut self, buf: &amp;mut <a class="struct" href="../../../../std/vec/struct.Vec.html" title="struct std::vec::Vec">Vec</a>&lt;<a class="primitive" href="../../../primitive.u8.html">u8</a>&gt;) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.usize.html">usize</a>&gt;</code></span></h4>
<div class='docblock'><p>Read all bytes until EOF in this source, placing them into <code>buf</code>. <a href="../../../../std/io/trait.Read.html#method.read_to_end">Read more</a></p>
</div><h4 id='method.read_to_string' class="method"><span id='read_to_string.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.read_to_string' class='fnname'>read_to_string</a>(&amp;mut self, buf: &amp;mut <a class="struct" href="../../../../std/string/struct.String.html" title="struct std::string::String">String</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.usize.html">usize</a>&gt;</code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Read all bytes until EOF in this source, placing them into <code>buf</code>. <a href="../../../../std/io/trait.Read.html#method.read_to_string">Read more</a></p>
</div><h4 id='method.read_exact' class="method"><span id='read_exact.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.read_exact' class='fnname'>read_exact</a>(&amp;mut self, buf: <a class="primitive" href="../../../primitive.slice.html">&amp;mut [</a><a class="primitive" href="../../../primitive.u8.html">u8</a><a class="primitive" href="../../../primitive.slice.html">]</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code><div class='since' title='Stable since Rust version 1.6.0'>1.6.0</div></span></h4>
<div class='docblock'><p>Read the exact number of bytes required to fill <code>buf</code>. <a href="../../../../std/io/trait.Read.html#method.read_exact">Read more</a></p>
</div><h4 id='method.by_ref' class="method"><span id='by_ref.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.by_ref' class='fnname'>by_ref</a>(&amp;mut self) -&gt; &amp;mut Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Creates a &quot;by reference&quot; adaptor for this instance of <code>Read</code>. <a href="../../../../std/io/trait.Read.html#method.by_ref">Read more</a></p>
</div><h4 id='method.bytes' class="method"><span id='bytes.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.bytes' class='fnname'>bytes</a>(self) -&gt; <a class="struct" href="../../../../std/io/struct.Bytes.html" title="struct std::io::Bytes">Bytes</a>&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Transforms this <code>Read</code> instance to an <code>Iterator</code> over its bytes. <a href="../../../../std/io/trait.Read.html#method.bytes">Read more</a></p>
</div><h4 id='method.chars' class="method"><span id='chars.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.chars' class='fnname'>chars</a>(self) -&gt; <a class="struct" href="../../../../std/io/struct.Chars.html" title="struct std::io::Chars">Chars</a>&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code></span></h4>
<div class='stability'><div class='stab unstable'><details><summary><span class=microscope>🔬</span> This is a nightly-only experimental API.  (<code>io </code><a href="https://github.com/rust-lang/rust/issues/27802">#27802</a>)</summary><p>the semantics of a partial read/write of where errors happen is currently unclear and may change</p>
</details></div></div><div class='docblock'><p>Transforms this <code>Read</code> instance to an <code>Iterator</code> over <code>char</code>s. <a href="../../../../std/io/trait.Read.html#method.chars">Read more</a></p>
</div><h4 id='method.chain' class="method"><span id='chain.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.chain' class='fnname'>chain</a>&lt;R:&nbsp;<a class="trait" href="../../../../std/io/trait.Read.html" title="trait std::io::Read">Read</a>&gt;(self, next: R) -&gt; <a class="struct" href="../../../../std/io/struct.Chain.html" title="struct std::io::Chain">Chain</a>&lt;Self, R&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Creates an adaptor which will chain this stream with another. <a href="../../../../std/io/trait.Read.html#method.chain">Read more</a></p>
</div><h4 id='method.take' class="method"><span id='take.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.take' class='fnname'>take</a>(self, limit: <a class="primitive" href="../../../primitive.u64.html">u64</a>) -&gt; <a class="struct" href="../../../../std/io/struct.Take.html" title="struct std::io::Take">Take</a>&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Creates an adaptor which will read at most <code>limit</code> bytes from it. <a href="../../../../std/io/trait.Read.html#method.take">Read more</a></p>
</div></div><h3 class='impl'><span class='in-band'><code>impl&lt;'a&gt; <a class="trait" href="../../../../std/io/trait.Read.html" title="trait std::io::Read">Read</a> for &amp;'a <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#525-533' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.read-1' class="method"><span id='read.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#tymethod.read' class='fnname'>read</a>(&amp;mut self, buf: <a class="primitive" href="../../../primitive.slice.html">&amp;mut [</a><a class="primitive" href="../../../primitive.u8.html">u8</a><a class="primitive" href="../../../primitive.slice.html">]</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.usize.html">usize</a>&gt;</code></span></h4>
<div class='docblock'><p>Pull some bytes from this source into the specified buffer, returning how many bytes were read. <a href="../../../../std/io/trait.Read.html#tymethod.read">Read more</a></p>
</div><h4 id='method.read_to_end-1' class="method"><span id='read_to_end.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.read_to_end' class='fnname'>read_to_end</a>(&amp;mut self, buf: &amp;mut <a class="struct" href="../../../../std/vec/struct.Vec.html" title="struct std::vec::Vec">Vec</a>&lt;<a class="primitive" href="../../../primitive.u8.html">u8</a>&gt;) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.usize.html">usize</a>&gt;</code></span></h4>
<div class='docblock'><p>Read all bytes until EOF in this source, placing them into <code>buf</code>. <a href="../../../../std/io/trait.Read.html#method.read_to_end">Read more</a></p>
</div><h4 id='method.read_to_string-1' class="method"><span id='read_to_string.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.read_to_string' class='fnname'>read_to_string</a>(&amp;mut self, buf: &amp;mut <a class="struct" href="../../../../std/string/struct.String.html" title="struct std::string::String">String</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.usize.html">usize</a>&gt;</code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Read all bytes until EOF in this source, placing them into <code>buf</code>. <a href="../../../../std/io/trait.Read.html#method.read_to_string">Read more</a></p>
</div><h4 id='method.read_exact-1' class="method"><span id='read_exact.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.read_exact' class='fnname'>read_exact</a>(&amp;mut self, buf: <a class="primitive" href="../../../primitive.slice.html">&amp;mut [</a><a class="primitive" href="../../../primitive.u8.html">u8</a><a class="primitive" href="../../../primitive.slice.html">]</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code><div class='since' title='Stable since Rust version 1.6.0'>1.6.0</div></span></h4>
<div class='docblock'><p>Read the exact number of bytes required to fill <code>buf</code>. <a href="../../../../std/io/trait.Read.html#method.read_exact">Read more</a></p>
</div><h4 id='method.by_ref-1' class="method"><span id='by_ref.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.by_ref' class='fnname'>by_ref</a>(&amp;mut self) -&gt; &amp;mut Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Creates a &quot;by reference&quot; adaptor for this instance of <code>Read</code>. <a href="../../../../std/io/trait.Read.html#method.by_ref">Read more</a></p>
</div><h4 id='method.bytes-1' class="method"><span id='bytes.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.bytes' class='fnname'>bytes</a>(self) -&gt; <a class="struct" href="../../../../std/io/struct.Bytes.html" title="struct std::io::Bytes">Bytes</a>&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Transforms this <code>Read</code> instance to an <code>Iterator</code> over its bytes. <a href="../../../../std/io/trait.Read.html#method.bytes">Read more</a></p>
</div><h4 id='method.chars-1' class="method"><span id='chars.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.chars' class='fnname'>chars</a>(self) -&gt; <a class="struct" href="../../../../std/io/struct.Chars.html" title="struct std::io::Chars">Chars</a>&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code></span></h4>
<div class='stability'><div class='stab unstable'><details><summary><span class=microscope>🔬</span> This is a nightly-only experimental API.  (<code>io </code><a href="https://github.com/rust-lang/rust/issues/27802">#27802</a>)</summary><p>the semantics of a partial read/write of where errors happen is currently unclear and may change</p>
</details></div></div><div class='docblock'><p>Transforms this <code>Read</code> instance to an <code>Iterator</code> over <code>char</code>s. <a href="../../../../std/io/trait.Read.html#method.chars">Read more</a></p>
</div><h4 id='method.chain-1' class="method"><span id='chain.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.chain' class='fnname'>chain</a>&lt;R:&nbsp;<a class="trait" href="../../../../std/io/trait.Read.html" title="trait std::io::Read">Read</a>&gt;(self, next: R) -&gt; <a class="struct" href="../../../../std/io/struct.Chain.html" title="struct std::io::Chain">Chain</a>&lt;Self, R&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Creates an adaptor which will chain this stream with another. <a href="../../../../std/io/trait.Read.html#method.chain">Read more</a></p>
</div><h4 id='method.take-1' class="method"><span id='take.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Read.html#method.take' class='fnname'>take</a>(self, limit: <a class="primitive" href="../../../primitive.u64.html">u64</a>) -&gt; <a class="struct" href="../../../../std/io/struct.Take.html" title="struct std::io::Take">Take</a>&lt;Self&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Creates an adaptor which will read at most <code>limit</code> bytes from it. <a href="../../../../std/io/trait.Read.html#method.take">Read more</a></p>
</div></div><h3 class='impl'><span class='in-band'><code>impl <a class="trait" href="../../../../std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#536-544' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.write' class="method"><span id='write.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#tymethod.write' class='fnname'>write</a>(&amp;mut self, buf: <a class="primitive" href="../../../primitive.slice.html">&amp;[</a><a class="primitive" href="../../../primitive.u8.html">u8</a><a class="primitive" href="../../../primitive.slice.html">]</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.usize.html">usize</a>&gt;</code></span></h4>
<div class='docblock'><p>Write a buffer into this object, returning how many bytes were written. <a href="../../../../std/io/trait.Write.html#tymethod.write">Read more</a></p>
</div><h4 id='method.flush' class="method"><span id='flush.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#tymethod.flush' class='fnname'>flush</a>(&amp;mut self) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code></span></h4>
<div class='docblock'><p>Flush this output stream, ensuring that all intermediately buffered contents reach their destination. <a href="../../../../std/io/trait.Write.html#tymethod.flush">Read more</a></p>
</div><h4 id='method.write_all' class="method"><span id='write_all.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#method.write_all' class='fnname'>write_all</a>(&amp;mut self, buf: <a class="primitive" href="../../../primitive.slice.html">&amp;[</a><a class="primitive" href="../../../primitive.u8.html">u8</a><a class="primitive" href="../../../primitive.slice.html">]</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Attempts to write an entire buffer into this write. <a href="../../../../std/io/trait.Write.html#method.write_all">Read more</a></p>
</div><h4 id='method.write_fmt' class="method"><span id='write_fmt.v' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#method.write_fmt' class='fnname'>write_fmt</a>(&amp;mut self, fmt: <a class="struct" href="../../../../std/fmt/struct.Arguments.html" title="struct std::fmt::Arguments">Arguments</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Writes a formatted string into this writer, returning any error encountered. <a href="../../../../std/io/trait.Write.html#method.write_fmt">Read more</a></p>
</div><h4 id='method.by_ref-2' class="method"><span id='by_ref.v-2' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#method.by_ref' class='fnname'>by_ref</a>(&amp;mut self) -&gt; &amp;mut Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Creates a &quot;by reference&quot; adaptor for this instance of <code>Write</code>. <a href="../../../../std/io/trait.Write.html#method.by_ref">Read more</a></p>
</div></div><h3 class='impl'><span class='in-band'><code>impl&lt;'a&gt; <a class="trait" href="../../../../std/io/trait.Write.html" title="trait std::io::Write">Write</a> for &amp;'a <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#547-555' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.write-1' class="method"><span id='write.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#tymethod.write' class='fnname'>write</a>(&amp;mut self, buf: <a class="primitive" href="../../../primitive.slice.html">&amp;[</a><a class="primitive" href="../../../primitive.u8.html">u8</a><a class="primitive" href="../../../primitive.slice.html">]</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.usize.html">usize</a>&gt;</code></span></h4>
<div class='docblock'><p>Write a buffer into this object, returning how many bytes were written. <a href="../../../../std/io/trait.Write.html#tymethod.write">Read more</a></p>
</div><h4 id='method.flush-1' class="method"><span id='flush.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#tymethod.flush' class='fnname'>flush</a>(&amp;mut self) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code></span></h4>
<div class='docblock'><p>Flush this output stream, ensuring that all intermediately buffered contents reach their destination. <a href="../../../../std/io/trait.Write.html#tymethod.flush">Read more</a></p>
</div><h4 id='method.write_all-1' class="method"><span id='write_all.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#method.write_all' class='fnname'>write_all</a>(&amp;mut self, buf: <a class="primitive" href="../../../primitive.slice.html">&amp;[</a><a class="primitive" href="../../../primitive.u8.html">u8</a><a class="primitive" href="../../../primitive.slice.html">]</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Attempts to write an entire buffer into this write. <a href="../../../../std/io/trait.Write.html#method.write_all">Read more</a></p>
</div><h4 id='method.write_fmt-1' class="method"><span id='write_fmt.v-1' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#method.write_fmt' class='fnname'>write_fmt</a>(&amp;mut self, fmt: <a class="struct" href="../../../../std/fmt/struct.Arguments.html" title="struct std::fmt::Arguments">Arguments</a>) -&gt; <a class="type" href="../../../../std/io/type.Result.html" title="type std::io::Result">Result</a>&lt;<a class="primitive" href="../../../primitive.tuple.html">()</a>&gt;</code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Writes a formatted string into this writer, returning any error encountered. <a href="../../../../std/io/trait.Write.html#method.write_fmt">Read more</a></p>
</div><h4 id='method.by_ref-3' class="method"><span id='by_ref.v-3' class='invisible'><code>fn <a href='../../../../std/io/trait.Write.html#method.by_ref' class='fnname'>by_ref</a>(&amp;mut self) -&gt; &amp;mut Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="../../../../std/marker/trait.Sized.html" title="trait std::marker::Sized">Sized</a>,&nbsp;</span></code><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div></span></h4>
<div class='docblock'><p>Creates a &quot;by reference&quot; adaptor for this instance of <code>Write</code>. <a href="../../../../std/io/trait.Write.html#method.by_ref">Read more</a></p>
</div></div><h3 class='impl'><span class='in-band'><code>impl <a class="trait" href="../../../../std/os/unix/io/trait.AsRawFd.html" title="trait std::os::unix::io::AsRawFd">AsRawFd</a> for <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#558-562' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.as_raw_fd' class="method"><span id='as_raw_fd.v' class='invisible'><code>fn <a href='../../../../std/os/unix/io/trait.AsRawFd.html#tymethod.as_raw_fd' class='fnname'>as_raw_fd</a>(&amp;self) -&gt; <a class="type" href="../../../../std/os/unix/io/type.RawFd.html" title="type std::os::unix::io::RawFd">RawFd</a></code></span></h4>
<div class='docblock'><p>Extracts the raw file descriptor. <a href="../../../../std/os/unix/io/trait.AsRawFd.html#tymethod.as_raw_fd">Read more</a></p>
</div></div><h3 class='impl'><span class='in-band'><code>impl <a class="trait" href="../../../../std/os/unix/io/trait.FromRawFd.html" title="trait std::os::unix::io::FromRawFd">FromRawFd</a> for <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#565-569' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.from_raw_fd' class="method"><span id='from_raw_fd.v' class='invisible'><code>unsafe fn <a href='../../../../std/os/unix/io/trait.FromRawFd.html#tymethod.from_raw_fd' class='fnname'>from_raw_fd</a>(fd: <a class="type" href="../../../../std/os/unix/io/type.RawFd.html" title="type std::os::unix::io::RawFd">RawFd</a>) -&gt; <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span></h4>
<div class='docblock'><p>Constructs a new instance of <code>Self</code> from the given raw file descriptor. <a href="../../../../std/os/unix/io/trait.FromRawFd.html#tymethod.from_raw_fd">Read more</a></p>
</div></div><h3 class='impl'><span class='in-band'><code>impl <a class="trait" href="../../../../std/os/unix/io/trait.IntoRawFd.html" title="trait std::os::unix::io::IntoRawFd">IntoRawFd</a> for <a class="struct" href="../../../../std/os/unix/net/struct.UnixStream.html" title="struct std::os::unix::net::UnixStream">UnixStream</a></code></span><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../../src/std/sys/unix/ext/net.rs.html#572-576' title='goto source code'>[src]</a></span></h3>
<div class='impl-items'><h4 id='method.into_raw_fd' class="method"><span id='into_raw_fd.v' class='invisible'><code>fn <a href='../../../../std/os/unix/io/trait.IntoRawFd.html#tymethod.into_raw_fd' class='fnname'>into_raw_fd</a>(self) -&gt; <a class="type" href="../../../../std/os/unix/io/type.RawFd.html" title="type std::os::unix::io::RawFd">RawFd</a></code></span></h4>
<div class='docblock'><p>Consumes this object, returning the raw underlying file descriptor. <a href="../../../../std/os/unix/io/trait.IntoRawFd.html#tymethod.into_raw_fd">Read more</a></p>
</div></div></section>
    <section id='search' class="content hidden"></section>

    <section class="footer"></section>

    <aside id="help" class="hidden">
        <div>
            <h1 class="hidden">Help</h1>

            <div class="shortcuts">
                <h2>Keyboard Shortcuts</h2>

                <dl>
                    <dt>?</dt>
                    <dd>Show this help dialog</dd>
                    <dt>S</dt>
                    <dd>Focus the search field</dd>
                    <dt>&larrb;</dt>
                    <dd>Move up in search results</dd>
                    <dt>&rarrb;</dt>
                    <dd>Move down in search results</dd>
                    <dt>&#9166;</dt>
                    <dd>Go to active search result</dd>
                    <dt>+</dt>
                    <dd>Collapse/expand all sections</dd>
                </dl>
            </div>

            <div class="infos">
                <h2>Search Tricks</h2>

                <p>
                    Prefix searches with a type followed by a colon (e.g.
                    <code>fn:</code>) to restrict the search to a given type.
                </p>

                <p>
                    Accepted types are: <code>fn</code>, <code>mod</code>,
                    <code>struct</code>, <code>enum</code>,
                    <code>trait</code>, <code>type</code>, <code>macro</code>,
                    and <code>const</code>.
                </p>

                <p>
                    Search functions by type signature (e.g.
                    <code>vec -> usize</code> or <code>* -> vec</code>)
                </p>
            </div>
        </div>
    </aside>

    

    <script>
        window.rootPath = "../../../../";
        window.currentCrate = "std";
    </script>
    <script src="../../../../main.js"></script>
    <script defer src="../../../../search-index.js"></script>
</body>
</html>