blob: ba7f18c5a54c643fb83d2768a65c5ad86af14bdd [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Stores configuration shared between multiple connections."><title>Config in quiche - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../static.files/rustdoc-2c208a72533b4dd0.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="quiche" data-themes="" data-resource-suffix="" data-rustdoc-version="1.79.0-nightly (0d8b3346a 2024-04-14)" data-channel="nightly" data-search-js="search-ffac13a0df2b1870.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../static.files/storage-e32f0c247825364d.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-c97aec732c613ca4.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-09095024cf37855e.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../quiche/index.html">quiche</a><span class="version">0.21.0</span></h2></div><h2 class="location"><a href="#">Config</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.discover_pmtu">discover_pmtu</a></li><li><a href="#method.enable_dgram">enable_dgram</a></li><li><a href="#method.enable_early_data">enable_early_data</a></li><li><a href="#method.enable_hystart">enable_hystart</a></li><li><a href="#method.enable_pacing">enable_pacing</a></li><li><a href="#method.grease">grease</a></li><li><a href="#method.load_cert_chain_from_pem_file">load_cert_chain_from_pem_file</a></li><li><a href="#method.load_priv_key_from_pem_file">load_priv_key_from_pem_file</a></li><li><a href="#method.load_verify_locations_from_directory">load_verify_locations_from_directory</a></li><li><a href="#method.load_verify_locations_from_file">load_verify_locations_from_file</a></li><li><a href="#method.log_keys">log_keys</a></li><li><a href="#method.new">new</a></li><li><a href="#method.set_ack_delay_exponent">set_ack_delay_exponent</a></li><li><a href="#method.set_active_connection_id_limit">set_active_connection_id_limit</a></li><li><a href="#method.set_application_protos">set_application_protos</a></li><li><a href="#method.set_application_protos_wire_format">set_application_protos_wire_format</a></li><li><a href="#method.set_cc_algorithm">set_cc_algorithm</a></li><li><a href="#method.set_cc_algorithm_name">set_cc_algorithm_name</a></li><li><a href="#method.set_disable_active_migration">set_disable_active_migration</a></li><li><a href="#method.set_disable_dcid_reuse">set_disable_dcid_reuse</a></li><li><a href="#method.set_initial_congestion_window_packets">set_initial_congestion_window_packets</a></li><li><a href="#method.set_initial_max_data">set_initial_max_data</a></li><li><a href="#method.set_initial_max_stream_data_bidi_local">set_initial_max_stream_data_bidi_local</a></li><li><a href="#method.set_initial_max_stream_data_bidi_remote">set_initial_max_stream_data_bidi_remote</a></li><li><a href="#method.set_initial_max_stream_data_uni">set_initial_max_stream_data_uni</a></li><li><a href="#method.set_initial_max_streams_bidi">set_initial_max_streams_bidi</a></li><li><a href="#method.set_initial_max_streams_uni">set_initial_max_streams_uni</a></li><li><a href="#method.set_max_ack_delay">set_max_ack_delay</a></li><li><a href="#method.set_max_connection_window">set_max_connection_window</a></li><li><a href="#method.set_max_idle_timeout">set_max_idle_timeout</a></li><li><a href="#method.set_max_pacing_rate">set_max_pacing_rate</a></li><li><a href="#method.set_max_recv_udp_payload_size">set_max_recv_udp_payload_size</a></li><li><a href="#method.set_max_send_udp_payload_size">set_max_send_udp_payload_size</a></li><li><a href="#method.set_max_stream_window">set_max_stream_window</a></li><li><a href="#method.set_path_challenge_recv_max_queue_len">set_path_challenge_recv_max_queue_len</a></li><li><a href="#method.set_stateless_reset_token">set_stateless_reset_token</a></li><li><a href="#method.set_ticket_key">set_ticket_key</a></li><li><a href="#method.verify_peer">verify_peer</a></li><li><a href="#method.with_boring_ssl_ctx_builder">with_boring_ssl_ctx_builder</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-Config">Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-Config">RefUnwindSafe</a></li><li><a href="#impl-Send-for-Config">Send</a></li><li><a href="#impl-Sync-for-Config">Sync</a></li><li><a href="#impl-Unpin-for-Config">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Config">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">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-T">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-T">Into&lt;U&gt;</a></li><li><a href="#impl-IntoEither-for-T">IntoEither</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In crate quiche</a></h2></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../quiche/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../settings.html" title="settings">Settings</a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="index.html">quiche</a>::<wbr><a class="struct" href="#">Config</a><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><span class="out-of-band"><a class="src" href="../src/quiche/lib.rs.html#781-813">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub struct Config { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Stores configuration shared between multiple connections.</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-Config" class="impl"><a class="src rightside" href="../src/quiche/lib.rs.html#820-1341">source</a><a href="#impl-Config" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a></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/quiche/lib.rs.html#829-831">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>(version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a>&gt;</h4></section></summary><div class="docblock"><p>Creates a config object with the given version.</p>
<h6 id="examples"><a class="doc-anchor" href="#examples">§</a>Examples:</h6>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>config = quiche::Config::new(quiche::PROTOCOL_VERSION)<span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_boring_ssl_ctx_builder" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#842-846">source</a><h4 class="code-header">pub fn <a href="#method.with_boring_ssl_ctx_builder" class="fn">with_boring_ssl_ctx_builder</a>(
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
tls_ctx_builder: SslContextBuilder
) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a>&gt;</h4></section><span class="item-info"><div class="stab portability">Available on <strong>crate feature <code>boringssl-boring-crate</code></strong> only.</div></span></summary><div class="docblock"><p>Creates a config object with the given version and
<a href="https://docs.rs/boring/latest/boring/ssl/struct.SslContextBuilder.html"><code>SslContextBuilder</code></a>.</p>
<p>This is useful for applications that wish to manually configure
<a href="https://docs.rs/boring/latest/boring/ssl/struct.SslContextBuilder.html"><code>SslContextBuilder</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_cert_chain_from_pem_file" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#894-896">source</a><h4 class="code-header">pub fn <a href="#method.load_cert_chain_from_pem_file" class="fn">load_cert_chain_from_pem_file</a>(&amp;mut self, file: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Configures the given certificate chain.</p>
<p>The content of <code>file</code> is parsed as a PEM-encoded leaf certificate,
followed by optional intermediate certificates.</p>
<h6 id="examples-1"><a class="doc-anchor" href="#examples-1">§</a>Examples:</h6>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>config.load_cert_chain_from_pem_file(<span class="string">"/path/to/cert.pem"</span>)<span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_priv_key_from_pem_file" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#909-911">source</a><h4 class="code-header">pub fn <a href="#method.load_priv_key_from_pem_file" class="fn">load_priv_key_from_pem_file</a>(&amp;mut self, file: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Configures the given private key.</p>
<p>The content of <code>file</code> is parsed as a PEM-encoded private key.</p>
<h6 id="examples-2"><a class="doc-anchor" href="#examples-2">§</a>Examples:</h6>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>config.load_priv_key_from_pem_file(<span class="string">"/path/to/key.pem"</span>)<span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_verify_locations_from_file" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#925-927">source</a><h4 class="code-header">pub fn <a href="#method.load_verify_locations_from_file" class="fn">load_verify_locations_from_file</a>(&amp;mut self, file: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Specifies a file where trusted CA certificates are stored for the
purposes of certificate verification.</p>
<p>The content of <code>file</code> is parsed as a PEM-encoded certificate chain.</p>
<h6 id="examples-3"><a class="doc-anchor" href="#examples-3">§</a>Examples:</h6>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>config.load_verify_locations_from_file(<span class="string">"/path/to/cert.pem"</span>)<span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.load_verify_locations_from_directory" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#941-945">source</a><h4 class="code-header">pub fn <a href="#method.load_verify_locations_from_directory" class="fn">load_verify_locations_from_directory</a>(&amp;mut self, dir: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Specifies a directory where trusted CA certificates are stored for the
purposes of certificate verification.</p>
<p>The content of <code>dir</code> a set of PEM-encoded certificate chains.</p>
<h6 id="examples-4"><a class="doc-anchor" href="#examples-4">§</a>Examples:</h6>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>config.load_verify_locations_from_directory(<span class="string">"/path/to/certs"</span>)<span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.verify_peer" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#959-961">source</a><h4 class="code-header">pub fn <a href="#method.verify_peer" class="fn">verify_peer</a>(&amp;mut self, verify: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Configures whether to verify the peer’s certificate.</p>
<p>The default value is <code>true</code> for client connections, and <code>false</code> for
server ones.</p>
<p>Note that on the server-side, enabling verification of the peer will
trigger a certificate request and make authentication errors fatal, but
will still allow anonymous clients (i.e. clients that don’t present a
certificate at all). Servers can check whether a client presented a
certificate by calling <a href="struct.Connection.html#method.peer_cert"><code>peer_cert()</code></a> if they need to.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.discover_pmtu" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#966-968">source</a><h4 class="code-header">pub fn <a href="#method.discover_pmtu" class="fn">discover_pmtu</a>(&amp;mut self, discover: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Configures whether to do path MTU discovery.</p>
<p>The default value is <code>false</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.grease" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#973-975">source</a><h4 class="code-header">pub fn <a href="#method.grease" class="fn">grease</a>(&amp;mut self, grease: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Configures whether to send GREASE values.</p>
<p>The default value is <code>true</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.log_keys" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#985-987">source</a><h4 class="code-header">pub fn <a href="#method.log_keys" class="fn">log_keys</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Enables logging of secrets.</p>
<p>When logging is enabled, the <a href="struct.Connection.html#method.set_keylog"><code>set_keylog()</code></a> method must be called on
the connection for its cryptographic secrets to be logged in the
<a href="https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/Key_Log_Format">keylog</a> format to the specified writer.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_ticket_key" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#999-1001">source</a><h4 class="code-header">pub fn <a href="#method.set_ticket_key" class="fn">set_ticket_key</a>(&amp;mut self, key: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Configures the session ticket key material.</p>
<p>On the server this key will be used to encrypt and decrypt session
tickets, used to perform session resumption without server-side state.</p>
<p>By default a key is generated internally, and rotated regularly, so
applications don’t need to call this unless they need to use a
specific key (e.g. in order to support resumption across multiple
servers), in which case the application is also responsible for
rotating the key to provide forward secrecy.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_early_data" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1004-1006">source</a><h4 class="code-header">pub fn <a href="#method.enable_early_data" class="fn">enable_early_data</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Enables sending or receiving early data.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_application_protos" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1025-1032">source</a><h4 class="code-header">pub fn <a href="#method.set_application_protos" class="fn">set_application_protos</a>(&amp;mut self, protos_list: &amp;[&amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]]) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Configures the list of supported application protocols.</p>
<p>On the client this configures the list of protocols to send to the
server as part of the ALPN extension.</p>
<p>On the server this configures the list of supported protocols to match
against the client-supplied list.</p>
<p>Applications must set a value, but no default is provided.</p>
<h6 id="examples-5"><a class="doc-anchor" href="#examples-5">§</a>Examples:</h6>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>config.set_application_protos(<span class="kw-2">&amp;</span>[<span class="string">b"http/1.1"</span>, <span class="string">b"http/0.9"</span>]);</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_application_protos_wire_format" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1050-1062">source</a><h4 class="code-header">pub fn <a href="#method.set_application_protos_wire_format" class="fn">set_application_protos_wire_format</a>(
&amp;mut self,
protos: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]
) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Configures the list of supported application protocols using wire
format.</p>
<p>The list of protocols <code>protos</code> must be a series of non-empty, 8-bit
length-prefixed strings.</p>
<p>See <a href="struct.Config.html#method.set_application_protos" title="method quiche::Config::set_application_protos"><code>set_application_protos</code></a> for more
background about application protocols.</p>
<h6 id="examples-6"><a class="doc-anchor" href="#examples-6">§</a>Examples:</h6>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>config.set_application_protos_wire_format(<span class="string">b"\x08http/1.1\x08http/0.9"</span>)<span class="question-mark">?</span>;</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_idle_timeout" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1067-1069">source</a><h4 class="code-header">pub fn <a href="#method.set_max_idle_timeout" class="fn">set_max_idle_timeout</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>max_idle_timeout</code> transport parameter, in milliseconds.</p>
<p>The default value is infinite, that is, no timeout is used.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_recv_udp_payload_size" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1074-1076">source</a><h4 class="code-header">pub fn <a href="#method.set_max_recv_udp_payload_size" class="fn">set_max_recv_udp_payload_size</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>max_udp_payload_size transport</code> parameter.</p>
<p>The default value is <code>65527</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_send_udp_payload_size" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1081-1083">source</a><h4 class="code-header">pub fn <a href="#method.set_max_send_udp_payload_size" class="fn">set_max_send_udp_payload_size</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Sets the maximum outgoing UDP payload size.</p>
<p>The default and minimum value is <code>1200</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_initial_max_data" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1097-1099">source</a><h4 class="code-header">pub fn <a href="#method.set_initial_max_data" class="fn">set_initial_max_data</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>initial_max_data</code> transport parameter.</p>
<p>When set to a non-zero value quiche will only allow at most <code>v</code> bytes of
incoming stream data to be buffered for the whole connection (that is,
data that is not yet read by the application) and will allow more data
to be received as the buffer is consumed by the application.</p>
<p>When set to zero, either explicitly or via the default, quiche will not
give any flow control to the peer, preventing it from sending any stream
data.</p>
<p>The default value is <code>0</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_initial_max_stream_data_bidi_local" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1114-1117">source</a><h4 class="code-header">pub fn <a href="#method.set_initial_max_stream_data_bidi_local" class="fn">set_initial_max_stream_data_bidi_local</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>initial_max_stream_data_bidi_local</code> transport parameter.</p>
<p>When set to a non-zero value quiche will only allow at most <code>v</code> bytes
of incoming stream data to be buffered for each locally-initiated
bidirectional stream (that is, data that is not yet read by the
application) and will allow more data to be received as the buffer is
consumed by the application.</p>
<p>When set to zero, either explicitly or via the default, quiche will not
give any flow control to the peer, preventing it from sending any stream
data.</p>
<p>The default value is <code>0</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_initial_max_stream_data_bidi_remote" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1132-1135">source</a><h4 class="code-header">pub fn <a href="#method.set_initial_max_stream_data_bidi_remote" class="fn">set_initial_max_stream_data_bidi_remote</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>initial_max_stream_data_bidi_remote</code> transport parameter.</p>
<p>When set to a non-zero value quiche will only allow at most <code>v</code> bytes
of incoming stream data to be buffered for each remotely-initiated
bidirectional stream (that is, data that is not yet read by the
application) and will allow more data to be received as the buffer is
consumed by the application.</p>
<p>When set to zero, either explicitly or via the default, quiche will not
give any flow control to the peer, preventing it from sending any stream
data.</p>
<p>The default value is <code>0</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_initial_max_stream_data_uni" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1149-1151">source</a><h4 class="code-header">pub fn <a href="#method.set_initial_max_stream_data_uni" class="fn">set_initial_max_stream_data_uni</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>initial_max_stream_data_uni</code> transport parameter.</p>
<p>When set to a non-zero value quiche will only allow at most <code>v</code> bytes
of incoming stream data to be buffered for each unidirectional stream
(that is, data that is not yet read by the application) and will allow
more data to be received as the buffer is consumed by the application.</p>
<p>When set to zero, either explicitly or via the default, quiche will not
give any flow control to the peer, preventing it from sending any stream
data.</p>
<p>The default value is <code>0</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_initial_max_streams_bidi" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1170-1172">source</a><h4 class="code-header">pub fn <a href="#method.set_initial_max_streams_bidi" class="fn">set_initial_max_streams_bidi</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>initial_max_streams_bidi</code> transport parameter.</p>
<p>When set to a non-zero value quiche will only allow <code>v</code> number of
concurrent remotely-initiated bidirectional streams to be open at any
given time and will increase the limit automatically as streams are
completed.</p>
<p>When set to zero, either explicitly or via the default, quiche will not
not allow the peer to open any bidirectional streams.</p>
<p>A bidirectional stream is considered completed when all incoming data
has been read by the application (up to the <code>fin</code> offset) or the
stream’s read direction has been shutdown, and all outgoing data has
been acked by the peer (up to the <code>fin</code> offset) or the stream’s write
direction has been shutdown.</p>
<p>The default value is <code>0</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_initial_max_streams_uni" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1189-1191">source</a><h4 class="code-header">pub fn <a href="#method.set_initial_max_streams_uni" class="fn">set_initial_max_streams_uni</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>initial_max_streams_uni</code> transport parameter.</p>
<p>When set to a non-zero value quiche will only allow <code>v</code> number of
concurrent remotely-initiated unidirectional streams to be open at any
given time and will increase the limit automatically as streams are
completed.</p>
<p>When set to zero, either explicitly or via the default, quiche will not
not allow the peer to open any unidirectional streams.</p>
<p>A unidirectional stream is considered completed when all incoming data
has been read by the application (up to the <code>fin</code> offset) or the
stream’s read direction has been shutdown.</p>
<p>The default value is <code>0</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_ack_delay_exponent" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1196-1198">source</a><h4 class="code-header">pub fn <a href="#method.set_ack_delay_exponent" class="fn">set_ack_delay_exponent</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>ack_delay_exponent</code> transport parameter.</p>
<p>The default value is <code>3</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_ack_delay" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1203-1205">source</a><h4 class="code-header">pub fn <a href="#method.set_max_ack_delay" class="fn">set_max_ack_delay</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>max_ack_delay</code> transport parameter.</p>
<p>The default value is <code>25</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_active_connection_id_limit" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1210-1214">source</a><h4 class="code-header">pub fn <a href="#method.set_active_connection_id_limit" class="fn">set_active_connection_id_limit</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>active_connection_id_limit</code> transport parameter.</p>
<p>The default value is <code>2</code>. Lower values will be ignored.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_disable_active_migration" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1219-1221">source</a><h4 class="code-header">pub fn <a href="#method.set_disable_active_migration" class="fn">set_disable_active_migration</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Sets the <code>disable_active_migration</code> transport parameter.</p>
<p>The default value is <code>false</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_cc_algorithm_name" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1235-1239">source</a><h4 class="code-header">pub fn <a href="#method.set_cc_algorithm_name" class="fn">set_cc_algorithm_name</a>(&amp;mut self, name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="type" href="type.Result.html" title="type quiche::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</h4></section></summary><div class="docblock"><p>Sets the congestion control algorithm used by string.</p>
<p>The default value is <code>cubic</code>. On error <code>Error::CongestionControl</code>
will be returned.</p>
<h6 id="examples-7"><a class="doc-anchor" href="#examples-7">§</a>Examples:</h6>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>config.set_cc_algorithm_name(<span class="string">"reno"</span>);</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_initial_congestion_window_packets" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1244-1246">source</a><h4 class="code-header">pub fn <a href="#method.set_initial_congestion_window_packets" class="fn">set_initial_congestion_window_packets</a>(&amp;mut self, packets: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Sets initial congestion window size in terms of packet count.</p>
<p>The default value is 10.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_cc_algorithm" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1251-1253">source</a><h4 class="code-header">pub fn <a href="#method.set_cc_algorithm" class="fn">set_cc_algorithm</a>(&amp;mut self, algo: <a class="enum" href="enum.CongestionControlAlgorithm.html" title="enum quiche::CongestionControlAlgorithm">CongestionControlAlgorithm</a>)</h4></section></summary><div class="docblock"><p>Sets the congestion control algorithm used.</p>
<p>The default value is <code>CongestionControlAlgorithm::CUBIC</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_hystart" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1258-1260">source</a><h4 class="code-header">pub fn <a href="#method.enable_hystart" class="fn">enable_hystart</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Configures whether to enable HyStart++.</p>
<p>The default value is <code>true</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_pacing" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1265-1267">source</a><h4 class="code-header">pub fn <a href="#method.enable_pacing" class="fn">enable_pacing</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Configures whether to enable pacing.</p>
<p>The default value is <code>true</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_pacing_rate" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1272-1274">source</a><h4 class="code-header">pub fn <a href="#method.set_max_pacing_rate" class="fn">set_max_pacing_rate</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the max value for pacing rate.</p>
<p>By default pacing rate is not limited.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.enable_dgram" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1282-1292">source</a><h4 class="code-header">pub fn <a href="#method.enable_dgram" class="fn">enable_dgram</a>(
&amp;mut self,
enabled: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
recv_queue_len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
send_queue_len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>
)</h4></section></summary><div class="docblock"><p>Configures whether to enable receiving DATAGRAM frames.</p>
<p>When enabled, the <code>max_datagram_frame_size</code> transport parameter is set
to 65536 as recommended by draft-ietf-quic-datagram-01.</p>
<p>The default is <code>false</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_path_challenge_recv_max_queue_len" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1300-1302">source</a><h4 class="code-header">pub fn <a href="#method.set_path_challenge_recv_max_queue_len" class="fn">set_path_challenge_recv_max_queue_len</a>(&amp;mut self, queue_len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>)</h4></section></summary><div class="docblock"><p>Configures the max number of queued received PATH_CHALLENGE frames.</p>
<p>When an endpoint receives a PATH_CHALLENGE frame and the queue is full,
the frame is discarded.</p>
<p>The default is 3.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_connection_window" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1307-1309">source</a><h4 class="code-header">pub fn <a href="#method.set_max_connection_window" class="fn">set_max_connection_window</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the maximum size of the connection window.</p>
<p>The default value is MAX_CONNECTION_WINDOW (24MBytes).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_max_stream_window" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1314-1316">source</a><h4 class="code-header">pub fn <a href="#method.set_max_stream_window" class="fn">set_max_stream_window</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>Sets the maximum size of the stream window.</p>
<p>The default value is MAX_STREAM_WINDOW (16MBytes).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_stateless_reset_token" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1324-1326">source</a><h4 class="code-header">pub fn <a href="#method.set_stateless_reset_token" class="fn">set_stateless_reset_token</a>(&amp;mut self, v: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u128.html">u128</a>&gt;)</h4></section></summary><div class="docblock"><p>Sets the initial stateless reset token.</p>
<p>This value is only advertised by servers. Setting a stateless retry
token as a client has no effect on the connection.</p>
<p>The default value is <code>None</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.set_disable_dcid_reuse" class="method"><a class="src rightside" href="../src/quiche/lib.rs.html#1338-1340">source</a><h4 class="code-header">pub fn <a href="#method.set_disable_dcid_reuse" class="fn">set_disable_dcid_reuse</a>(&amp;mut self, v: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>)</h4></section></summary><div class="docblock"><p>Sets whether the QUIC connection should avoid reusing DCIDs over
different paths.</p>
<p>When set to <code>true</code>, it ensures that a destination Connection ID is never
reused on different paths. Such behaviour may lead to connection stall
if the peer performs a non-voluntary migration (e.g., NAT rebinding) and
does not provide additional destination Connection IDs to handle such
event.</p>
<p>The default value is <code>false</code>.</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-Config" class="impl"><a href="#impl-Freeze-for-Config" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a></h3></section><section id="impl-RefUnwindSafe-for-Config" class="impl"><a href="#impl-RefUnwindSafe-for-Config" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a></h3></section><section id="impl-Send-for-Config" class="impl"><a href="#impl-Send-for-Config" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a></h3></section><section id="impl-Sync-for-Config" class="impl"><a href="#impl-Sync-for-Config" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a></h3></section><section id="impl-Unpin-for-Config" class="impl"><a href="#impl-Unpin-for-Config" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a></h3></section><section id="impl-UnwindSafe-for-Config" class="impl"><a href="#impl-UnwindSafe-for-Config" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Config.html" title="struct quiche::Config">Config</a></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/nightly/src/core/any.rs.html#140">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/nightly/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/nightly/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/nightly/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/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/nightly/src/core/borrow.rs.html#208">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/nightly/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/nightly/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/nightly/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/src/core/borrow.rs.html#216">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/nightly/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/nightly/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/nightly/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/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/nightly/src/core/convert/mod.rs.html#765">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/nightly/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/nightly/src/core/convert/mod.rs.html#768">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/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/nightly/src/core/convert/mod.rs.html#748-750">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/nightly/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/nightly/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/nightly/src/core/convert/mod.rs.html#758">source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/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/nightly/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-IntoEither-for-T" class="impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#64">source</a><a href="#impl-IntoEither-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html" title="trait either::into_either::IntoEither">IntoEither</a> for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_either" class="method trait-impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#29">source</a><a href="#method.into_either" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either" class="fn">into_either</a>(self, into_left: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -&gt; <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;Self, Self&gt;</h4></section></summary><div class='docblock'>Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Left" title="variant either::Either::Left"><code>Left</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
if <code>into_left</code> is <code>true</code>.
Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Right" title="variant either::Either::Right"><code>Right</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
otherwise. <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.into_either_with" class="method trait-impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#55-57">source</a><a href="#method.into_either_with" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with" class="fn">into_either_with</a>&lt;F&gt;(self, into_left: F) -&gt; <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;Self, Self&gt;<div class="where">where
F: <a class="trait" href="https://doc.rust-lang.org/nightly/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;Self</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class='docblock'>Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Left" title="variant either::Either::Left"><code>Left</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
if <code>into_left(&amp;self)</code> returns <code>true</code>.
Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Right" title="variant either::Either::Right"><code>Right</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
otherwise. <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with">Read more</a></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/nightly/src/core/convert/mod.rs.html#805-807">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/nightly/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/nightly/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 href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/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/nightly/src/core/convert/mod.rs.html#812">source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/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/nightly/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/nightly/src/core/convert/mod.rs.html#790-792">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/nightly/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/nightly/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 href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/src/core/convert/mod.rs.html#797">source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/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>