Files
GopherGate/target/doc/openssl/ssl/struct.SslStreamBuilder.html
2026-02-26 12:00:21 -05:00

60 lines
33 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A partially constructed `SslStream`, useful for unusual handshakes."><title>SslStreamBuilder in openssl::ssl - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="openssl" data-themes="" data-resource-suffix="" data-rustdoc-version="1.93.1 (01f6ddf75 2026-02-11) (Arch Linux rust 1:1.93.1-1)" data-channel="1.93.1" data-search-js="search-9e2438ea.js" data-stringdex-js="stringdex-a3946164.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-a410ff4d.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.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]--><rustdoc-topbar><h2><a href="#">SslStreamBuilder</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../openssl/index.html">openssl</a><span class="version">0.10.75</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">SslStream<wbr>Builder</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.accept" title="accept">accept</a></li><li><a href="#method.connect" title="connect">connect</a></li><li><a href="#method.get_mut" title="get_mut">get_mut</a></li><li><a href="#method.get_ref" title="get_ref">get_ref</a></li><li><a href="#method.handshake" title="handshake">handshake</a></li><li><a href="#method.new" title="new">new</a></li><li><a href="#method.read_early_data" title="read_early_data">read_early_data</a></li><li><a href="#method.set_accept_state" title="set_accept_state">set_accept_state</a></li><li><a href="#method.set_connect_state" title="set_connect_state">set_connect_state</a></li><li><a href="#method.set_dtls_mtu_size" title="set_dtls_mtu_size">set_dtls_mtu_size</a></li><li><a href="#method.ssl" title="ssl">ssl</a></li><li><a href="#method.stateless" title="stateless">stateless</a></li><li><a href="#method.write_early_data" title="write_early_data">write_early_data</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-SslStreamBuilder%3CS%3E" title="Freeze">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-SslStreamBuilder%3CS%3E" title="RefUnwindSafe">RefUnwindSafe</a></li><li><a href="#impl-Send-for-SslStreamBuilder%3CS%3E" title="Send">Send</a></li><li><a href="#impl-Sync-for-SslStreamBuilder%3CS%3E" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-SslStreamBuilder%3CS%3E" title="Unpin">Unpin</a></li><li><a href="#impl-UnwindSafe-for-SslStreamBuilder%3CS%3E" title="UnwindSafe">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In openssl::<wbr>ssl</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">openssl</a>::<wbr><a href="index.html">ssl</a></div><h1>Struct <span class="struct">SslStream<wbr>Builder</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/openssl/ssl/mod.rs.html#4042-4044">Source</a> </span></div><pre class="rust item-decl"><code>pub struct SslStreamBuilder&lt;S&gt; { <span class="comment">/* private fields */</span> }</code></pre><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.32: use the methods directly on Ssl/SslStream instead</span></div></span><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A partially constructed <code>SslStream</code>, useful for unusual handshakes.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-SslStreamBuilder%3CS%3E" class="impl"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4047-4177">Source</a><a href="#impl-SslStreamBuilder%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class="struct" href="struct.SslStreamBuilder.html" title="struct openssl::ssl::SslStreamBuilder">SslStreamBuilder</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/std/io/trait.Read.html" title="trait std::io::Read">Read</a> + <a class="trait" href="https://doc.rust-lang.org/1.93.1/std/io/trait.Write.html" title="trait std::io::Write">Write</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4052-4056">Source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(ssl: <a class="struct" href="struct.Ssl.html" title="struct openssl::ssl::Ssl">Ssl</a>, stream: S) -&gt; Self</h4></section></summary><div class="docblock"><p>Begin creating an <code>SslStream</code> atop <code>stream</code></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.stateless" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4070-4077">Source</a><h4 class="code-header">pub fn <a href="#method.stateless" class="fn">stateless</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.bool.html">bool</a>, <a class="struct" href="../error/struct.ErrorStack.html" title="struct openssl::error::ErrorStack">ErrorStack</a>&gt;</h4></section></summary><div class="docblock"><p>Perform a stateless server-side handshake</p>
<p>Requires that cookie generation and verification callbacks were
set on the SSL context.</p>
<p>Returns <code>Ok(true)</code> if a complete ClientHello containing a valid cookie
was read, in which case the handshake should be continued via
<code>accept</code>. If a HelloRetryRequest containing a fresh cookie was
transmitted, <code>Ok(false)</code> is returned instead. If the handshake cannot
proceed at all, <code>Err</code> is returned.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_stateless.html"><code>SSL_stateless</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_connect_state" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4081-4083">Source</a><h4 class="code-header">pub fn <a href="#method.set_connect_state" class="fn">set_connect_state</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Configure as an outgoing stream from a client.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_connect_state.html"><code>SSL_set_connect_state</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_accept_state" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4087-4089">Source</a><h4 class="code-header">pub fn <a href="#method.set_accept_state" class="fn">set_accept_state</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Configure as an incoming stream to a server.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_set_accept_state.html"><code>SSL_set_accept_state</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.connect" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4092-4108">Source</a><h4 class="code-header">pub fn <a href="#method.connect" class="fn">connect</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.SslStream.html" title="struct openssl::ssl::SslStream">SslStream</a>&lt;S&gt;, <a class="enum" href="enum.HandshakeError.html" title="enum openssl::ssl::HandshakeError">HandshakeError</a>&lt;S&gt;&gt;</h4></section></summary><div class="docblock"><p>See <code>Ssl::connect</code></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.accept" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4111-4127">Source</a><h4 class="code-header">pub fn <a href="#method.accept" class="fn">accept</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.SslStream.html" title="struct openssl::ssl::SslStream">SslStream</a>&lt;S&gt;, <a class="enum" href="enum.HandshakeError.html" title="enum openssl::ssl::HandshakeError">HandshakeError</a>&lt;S&gt;&gt;</h4></section></summary><div class="docblock"><p>See <code>Ssl::accept</code></p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.handshake" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4133-4149">Source</a><h4 class="code-header">pub fn <a href="#method.handshake" class="fn">handshake</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.SslStream.html" title="struct openssl::ssl::SslStream">SslStream</a>&lt;S&gt;, <a class="enum" href="enum.HandshakeError.html" title="enum openssl::ssl::HandshakeError">HandshakeError</a>&lt;S&gt;&gt;</h4></section></summary><div class="docblock"><p>Initiates the handshake.</p>
<p>This will fail if <code>set_accept_state</code> or <code>set_connect_state</code> was not called first.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_do_handshake.html"><code>SSL_do_handshake</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.read_early_data" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4162-4164">Source</a><h4 class="code-header">pub fn <a href="#method.read_early_data" class="fn">read_early_data</a>(&amp;mut self, buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct openssl::ssl::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Read application data transmitted by a client before handshake
completion.</p>
<p>Useful for reducing latency, but vulnerable to replay attacks. Call
<code>set_accept_state</code> first.</p>
<p>Returns <code>Ok(0)</code> if all early data has been read.</p>
<p>Requires OpenSSL 1.1.1 or newer or LibreSSL.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_read_early_data.html"><code>SSL_read_early_data</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.write_early_data" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4174-4176">Source</a><h4 class="code-header">pub fn <a href="#method.write_early_data" class="fn">write_early_data</a>(&amp;mut self, buf: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>, <a class="struct" href="struct.Error.html" title="struct openssl::ssl::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Send data to the server without blocking on handshake completion.</p>
<p>Useful for reducing latency, but vulnerable to replay attacks. Call
<code>set_connect_state</code> first.</p>
<p>Requires OpenSSL 1.1.1 or newer or LibreSSL.</p>
<p>This corresponds to <a href="https://www.openssl.org/docs/manmaster/man3/SSL_write_early_data.html"><code>SSL_write_early_data</code></a>.</p>
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-SslStreamBuilder%3CS%3E-1" class="impl"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4180-4221">Source</a><a href="#impl-SslStreamBuilder%3CS%3E-1" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class="struct" href="struct.SslStreamBuilder.html" title="struct openssl::ssl::SslStreamBuilder">SslStreamBuilder</a>&lt;S&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.get_ref" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4182-4187">Source</a><h4 class="code-header">pub fn <a href="#method.get_ref" class="fn">get_ref</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;S</a></h4></section></summary><div class="docblock"><p>Returns a shared reference to the underlying stream.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.get_mut" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4195-4200">Source</a><h4 class="code-header">pub fn <a href="#method.get_mut" class="fn">get_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut S</a></h4></section></summary><div class="docblock"><p>Returns a mutable reference to the underlying stream.</p>
<h5 id="warning"><a class="doc-anchor" href="#warning">§</a>Warning</h5>
<p>It is inadvisable to read from or write to the underlying stream as it
will most likely corrupt the SSL session.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.ssl" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4203-4205">Source</a><h4 class="code-header">pub fn <a href="#method.ssl" class="fn">ssl</a>(&amp;self) -&gt; &amp;<a class="struct" href="struct.SslRef.html" title="struct openssl::ssl::SslRef">SslRef</a></h4></section></summary><div class="docblock"><p>Returns a shared reference to the <code>Ssl</code> object associated with this builder.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_dtls_mtu_size" class="method"><a class="src rightside" href="../../src/openssl/ssl/mod.rs.html#4215-4220">Source</a><h4 class="code-header">pub fn <a href="#method.set_dtls_mtu_size" class="fn">set_dtls_mtu_size</a>(&amp;mut self, mtu_size: <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.usize.html">usize</a>)</h4></section><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 0.10.30: Use SslRef::set_mtu instead</span></div></span></summary><div class="docblock"><p>Set the DTLS MTU size.</p>
<p>It will be ignored if the value is smaller than the minimum packet size
the DTLS protocol requires.</p>
<h5 id="panics"><a class="doc-anchor" href="#panics">§</a>Panics</h5>
<p>This function panics if the given mtu size cant be represented in a positive <code>c_long</code> range</p>
</div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-SslStreamBuilder%3CS%3E" class="impl"><a href="#impl-Freeze-for-SslStreamBuilder%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.SslStreamBuilder.html" title="struct openssl::ssl::SslStreamBuilder">SslStreamBuilder</a>&lt;S&gt;</h3></section><section id="impl-RefUnwindSafe-for-SslStreamBuilder%3CS%3E" class="impl"><a href="#impl-RefUnwindSafe-for-SslStreamBuilder%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.SslStreamBuilder.html" title="struct openssl::ssl::SslStreamBuilder">SslStreamBuilder</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,</div></h3></section><section id="impl-Send-for-SslStreamBuilder%3CS%3E" class="impl"><a href="#impl-Send-for-SslStreamBuilder%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.SslStreamBuilder.html" title="struct openssl::ssl::SslStreamBuilder">SslStreamBuilder</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,</div></h3></section><section id="impl-Sync-for-SslStreamBuilder%3CS%3E" class="impl"><a href="#impl-Sync-for-SslStreamBuilder%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.SslStreamBuilder.html" title="struct openssl::ssl::SslStreamBuilder">SslStreamBuilder</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,</div></h3></section><section id="impl-Unpin-for-SslStreamBuilder%3CS%3E" class="impl"><a href="#impl-Unpin-for-SslStreamBuilder%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.SslStreamBuilder.html" title="struct openssl::ssl::SslStreamBuilder">SslStreamBuilder</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,</div></h3></section><section id="impl-UnwindSafe-for-SslStreamBuilder%3CS%3E" class="impl"><a href="#impl-UnwindSafe-for-SslStreamBuilder%3CS%3E" class="anchor">§</a><h3 class="code-header">impl&lt;S&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.SslStreamBuilder.html" title="struct openssl::ssl::SslStreamBuilder">SslStreamBuilder</a>&lt;S&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,</div></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/any.rs.html#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.93.1/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.93.1/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#214">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.93.1/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/borrow.rs.html#222">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.93.1/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.93.1/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#785">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#788">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#767-769">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#777">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#827-829">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#831">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#834">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#811-813">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#815">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.93.1/src/core/convert/mod.rs.html#818">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.93.1/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.93.1/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>