mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-24 03:58:19 +00:00
232 lines
75 KiB
HTML
232 lines
75 KiB
HTML
<!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="Parameters governing the core QUIC state machine"><title>TransportConfig in noq_proto - 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="noq_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.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-ce535bd0.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="#">TransportConfig</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../noq_proto/index.html">noq_<wbr>proto</a><span class="version">1.0.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Transport<wbr>Config</a></h2><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.ack_frequency_config" title="ack_frequency_config">ack_frequency_config</a></li><li><a href="#method.allow_spin" title="allow_spin">allow_spin</a></li><li><a href="#method.congestion_controller_factory" title="congestion_controller_factory">congestion_controller_factory</a></li><li><a href="#method.crypto_buffer_size" title="crypto_buffer_size">crypto_buffer_size</a></li><li><a href="#method.datagram_receive_buffer_size" title="datagram_receive_buffer_size">datagram_receive_buffer_size</a></li><li><a href="#method.datagram_send_buffer_size" title="datagram_send_buffer_size">datagram_send_buffer_size</a></li><li><a href="#method.default_path_keep_alive_interval" title="default_path_keep_alive_interval">default_path_keep_alive_interval</a></li><li><a href="#method.default_path_max_idle_timeout" title="default_path_max_idle_timeout">default_path_max_idle_timeout</a></li><li><a href="#method.enable_segmentation_offload" title="enable_segmentation_offload">enable_segmentation_offload</a></li><li><a href="#method.initial_mtu" title="initial_mtu">initial_mtu</a></li><li><a href="#method.initial_rtt" title="initial_rtt">initial_rtt</a></li><li><a href="#method.keep_alive_interval" title="keep_alive_interval">keep_alive_interval</a></li><li><a href="#method.max_concurrent_bidi_streams" title="max_concurrent_bidi_streams">max_concurrent_bidi_streams</a></li><li><a href="#method.max_concurrent_multipath_paths" title="max_concurrent_multipath_paths">max_concurrent_multipath_paths</a></li><li><a href="#method.max_concurrent_uni_streams" title="max_concurrent_uni_streams">max_concurrent_uni_streams</a></li><li><a href="#method.max_idle_timeout" title="max_idle_timeout">max_idle_timeout</a></li><li><a href="#method.max_outgoing_bytes_per_second" title="max_outgoing_bytes_per_second">max_outgoing_bytes_per_second</a></li><li><a href="#method.max_remote_nat_traversal_addresses" title="max_remote_nat_traversal_addresses">max_remote_nat_traversal_addresses</a></li><li><a href="#method.min_mtu" title="min_mtu">min_mtu</a></li><li><a href="#method.mtu_discovery_config" title="mtu_discovery_config">mtu_discovery_config</a></li><li><a href="#method.packet_threshold" title="packet_threshold">packet_threshold</a></li><li><a href="#method.pad_to_mtu" title="pad_to_mtu">pad_to_mtu</a></li><li><a href="#method.persistent_congestion_threshold" title="persistent_congestion_threshold">persistent_congestion_threshold</a></li><li><a href="#method.qlog_factory" title="qlog_factory">qlog_factory</a></li><li><a href="#method.qlog_from_env" title="qlog_from_env">qlog_from_env</a></li><li><a href="#method.qlog_from_path" title="qlog_from_path">qlog_from_path</a></li><li><a href="#method.receive_observed_address_reports" title="receive_observed_address_reports">receive_observed_address_reports</a></li><li><a href="#method.receive_window" title="receive_window">receive_window</a></li><li><a href="#method.send_fairness" title="send_fairness">send_fairness</a></li><li><a href="#method.send_observed_address_reports" title="send_observed_address_reports">send_observed_address_reports</a></li><li><a href="#method.send_window" title="send_window">send_window</a></li><li><a href="#method.server_handshake_migration" title="server_handshake_migration">server_handshake_migration</a></li><li><a href="#method.stream_receive_window" title="stream_receive_window">stream_receive_window</a></li><li><a href="#method.time_threshold" title="time_threshold">time_threshold</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-TransportConfig" title="Clone">Clone</a></li><li><a href="#impl-Debug-for-TransportConfig" title="Debug">Debug</a></li><li><a href="#impl-Default-for-TransportConfig" title="Default">Default</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-TransportConfig" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-UnwindSafe-for-TransportConfig" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-TransportConfig" title="Freeze">Freeze</a></li><li><a href="#impl-Send-for-TransportConfig" title="Send">Send</a></li><li><a href="#impl-Sync-for-TransportConfig" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-TransportConfig" title="Unpin">Unpin</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<T>">Borrow<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut<T>">BorrowMut<T></a></li><li><a href="#impl-CloneToUninit-for-T" title="CloneToUninit">CloneToUninit</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From<T>">From<T></a></li><li><a href="#impl-Instrument-for-T" title="Instrument">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into<U>">Into<U></a></li><li><a href="#impl-IntoEither-for-T" title="IntoEither">IntoEither</a></li><li><a href="#impl-Same-for-T" title="Same">Same</a></li><li><a href="#impl-ToOwned-for-T" title="ToOwned">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom<U>">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto<U>">TryInto<U></a></li><li><a href="#impl-WithSubscriber-for-T" title="WithSubscriber">WithSubscriber</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate noq_<wbr>proto</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">noq_proto</a></div><h1>Struct <span class="struct">Transport<wbr>Config</span> <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/noq_proto/config/transport.rs.html#30-74">Source</a> </span></div><pre class="rust item-decl"><code>pub struct TransportConfig { <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>Parameters governing the core QUIC state machine</p>
|
||
<p>Default values should be suitable for most internet applications. Applications protocols which
|
||
forbid remotely-initiated streams should set <code>max_concurrent_bidi_streams</code> and
|
||
<code>max_concurrent_uni_streams</code> to zero.</p>
|
||
<p>In some cases, performance or resource requirements can be improved by tuning these values to
|
||
suit a particular application and/or network connection. In particular, data window sizes can be
|
||
tuned for a particular expected round trip time, link capacity, and memory availability. Tuning
|
||
for higher bandwidths and latencies increases worst-case memory consumption, but does not impair
|
||
performance at lower bandwidths and latencies. The default configuration is tuned for a 100Mbps
|
||
link with a 100ms round trip time.</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-TransportConfig" class="impl"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#76-542">Source</a><a href="#impl-TransportConfig" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.max_concurrent_bidi_streams" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#83-86">Source</a><h4 class="code-header">pub fn <a href="#method.max_concurrent_bidi_streams" class="fn">max_concurrent_bidi_streams</a>(&mut self, value: <a class="struct" href="struct.VarInt.html" title="struct noq_proto::VarInt">VarInt</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum number of incoming bidirectional streams that may be open concurrently</p>
|
||
<p>Must be nonzero for the peer to open any bidirectional streams.</p>
|
||
<p>Worst-case memory use is directly proportional to <code>max_concurrent_bidi_streams * stream_receive_window</code>, with an upper bound proportional to <code>receive_window</code>.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.max_concurrent_uni_streams" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#89-92">Source</a><h4 class="code-header">pub fn <a href="#method.max_concurrent_uni_streams" class="fn">max_concurrent_uni_streams</a>(&mut self, value: <a class="struct" href="struct.VarInt.html" title="struct noq_proto::VarInt">VarInt</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Variant of <code>max_concurrent_bidi_streams</code> affecting unidirectional streams</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.max_idle_timeout" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#116-119">Source</a><h4 class="code-header">pub fn <a href="#method.max_idle_timeout" class="fn">max_idle_timeout</a>(&mut self, value: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.IdleTimeout.html" title="struct noq_proto::IdleTimeout">IdleTimeout</a>>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum duration of inactivity to accept before timing out the connection.</p>
|
||
<p>The true idle timeout is the minimum of this and the peer’s own max idle timeout. <code>None</code>
|
||
represents an infinite timeout. Defaults to 30 seconds.</p>
|
||
<p><strong>WARNING</strong>: If a peer or its network path malfunctions or acts maliciously, an infinite
|
||
idle timeout can result in permanently hung futures!</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>config = TransportConfig::default();
|
||
|
||
<span class="comment">// Set the idle timeout as `VarInt`-encoded milliseconds
|
||
</span>config.max_idle_timeout(<span class="prelude-val">Some</span>(VarInt::from_u32(<span class="number">10_000</span>).into()));
|
||
|
||
<span class="comment">// Set the idle timeout as a `Duration`
|
||
</span>config.max_idle_timeout(<span class="prelude-val">Some</span>(Duration::from_secs(<span class="number">10</span>).try_into()<span class="question-mark">?</span>));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.stream_receive_window" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#129-132">Source</a><h4 class="code-header">pub fn <a href="#method.stream_receive_window" class="fn">stream_receive_window</a>(&mut self, value: <a class="struct" href="struct.VarInt.html" title="struct noq_proto::VarInt">VarInt</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum number of bytes the peer may transmit without acknowledgement on any one stream
|
||
before becoming blocked.</p>
|
||
<p>This should be set to at least the expected connection latency multiplied by the maximum
|
||
desired throughput. Setting this smaller than <code>receive_window</code> helps ensure that a single
|
||
stream doesn’t monopolize receive buffers, which may otherwise occur if the application
|
||
chooses not to read from a large stream for a time while still requiring data on other
|
||
streams.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.receive_window" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#140-143">Source</a><h4 class="code-header">pub fn <a href="#method.receive_window" class="fn">receive_window</a>(&mut self, value: <a class="struct" href="struct.VarInt.html" title="struct noq_proto::VarInt">VarInt</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum number of bytes the peer may transmit across all streams of a connection before
|
||
becoming blocked.</p>
|
||
<p>This should be set to at least the expected connection latency multiplied by the maximum
|
||
desired throughput. Larger values can be useful to allow maximum throughput within a
|
||
stream while another is blocked.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.send_window" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#151-154">Source</a><h4 class="code-header">pub fn <a href="#method.send_window" class="fn">send_window</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum number of bytes to transmit to a peer without acknowledgment</p>
|
||
<p>Provides an upper bound on memory when communicating with peers that issue large amounts of
|
||
flow control credit. Endpoints that wish to handle large numbers of connections robustly
|
||
should take care to set this low enough to guarantee memory exhaustion does not occur if
|
||
every connection uses the entire window.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.send_fairness" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#166-169">Source</a><h4 class="code-header">pub fn <a href="#method.send_fairness" class="fn">send_fairness</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Whether to implement fair queuing for send streams having the same priority.</p>
|
||
<p>When enabled, connections schedule data from outgoing streams having the same priority in a
|
||
round-robin fashion. When disabled, streams are scheduled in the order they are written to.</p>
|
||
<p>Note that this only affects streams with the same priority. Higher priority streams always
|
||
take precedence over lower priority streams.</p>
|
||
<p>Disabling fairness can reduce fragmentation and protocol overhead for workloads that use
|
||
many small streams.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.packet_threshold" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#173-176">Source</a><h4 class="code-header">pub fn <a href="#method.packet_threshold" class="fn">packet_threshold</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum reordering in packet number space before FACK style loss detection considers a
|
||
packet lost. Should not be less than 3, per RFC5681.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.time_threshold" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#180-183">Source</a><h4 class="code-header">pub fn <a href="#method.time_threshold" class="fn">time_threshold</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.f32.html">f32</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum reordering in time space before time based loss detection considers a packet lost,
|
||
as a factor of RTT</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.initial_rtt" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#186-189">Source</a><h4 class="code-header">pub fn <a href="#method.initial_rtt" class="fn">initial_rtt</a>(&mut self, value: <a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>The RTT used before an RTT sample is taken</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.initial_mtu" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#199-202">Source</a><h4 class="code-header">pub fn <a href="#method.initial_mtu" class="fn">initial_mtu</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>The initial value to be used as the maximum UDP payload size before running MTU discovery
|
||
(see <a href="struct.TransportConfig.html#method.mtu_discovery_config" title="method noq_proto::TransportConfig::mtu_discovery_config"><code>TransportConfig::mtu_discovery_config</code></a>).</p>
|
||
<p>Must be at least 1200, which is the default, and known to be safe for typical internet
|
||
applications. Larger values are more efficient, but increase the risk of packet loss due to
|
||
exceeding the network path’s IP MTU. If the provided value is higher than what the network
|
||
path actually supports, packet loss will eventually trigger black hole detection and bring
|
||
it down to <a href="struct.TransportConfig.html#method.min_mtu" title="method noq_proto::TransportConfig::min_mtu"><code>TransportConfig::min_mtu</code></a>.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.min_mtu" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#221-224">Source</a><h4 class="code-header">pub fn <a href="#method.min_mtu" class="fn">min_mtu</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>The maximum UDP payload size guaranteed to be supported by the network.</p>
|
||
<p>Must be at least 1200, which is the default, and lower than or equal to
|
||
<a href="struct.TransportConfig.html#method.initial_mtu" title="method noq_proto::TransportConfig::initial_mtu"><code>TransportConfig::initial_mtu</code></a>.</p>
|
||
<p>Real-world MTUs can vary according to ISP, VPN, and properties of intermediate network links
|
||
outside of either endpoint’s control. Extreme care should be used when raising this value
|
||
outside of private networks where these factors are fully controlled. If the provided value
|
||
is higher than what the network path actually supports, the result will be unpredictable and
|
||
catastrophic packet loss, without a possibility of repair. Prefer
|
||
<a href="struct.TransportConfig.html#method.initial_mtu" title="method noq_proto::TransportConfig::initial_mtu"><code>TransportConfig::initial_mtu</code></a> together with
|
||
<a href="struct.TransportConfig.html#method.mtu_discovery_config" title="method noq_proto::TransportConfig::mtu_discovery_config"><code>TransportConfig::mtu_discovery_config</code></a> to set a maximum UDP payload size that robustly
|
||
adapts to the network.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.mtu_discovery_config" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#229-232">Source</a><h4 class="code-header">pub fn <a href="#method.mtu_discovery_config" class="fn">mtu_discovery_config</a>(
|
||
&mut self,
|
||
value: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.MtuDiscoveryConfig.html" title="struct noq_proto::MtuDiscoveryConfig">MtuDiscoveryConfig</a>>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>Specifies the MTU discovery config (see <a href="struct.MtuDiscoveryConfig.html" title="struct noq_proto::MtuDiscoveryConfig"><code>MtuDiscoveryConfig</code></a> for details).</p>
|
||
<p>Enabled by default.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.pad_to_mtu" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#243-246">Source</a><h4 class="code-header">pub fn <a href="#method.pad_to_mtu" class="fn">pad_to_mtu</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Pad UDP datagrams carrying application data to current maximum UDP payload size</p>
|
||
<p>Disabled by default. UDP datagrams containing loss probes are exempt from padding.</p>
|
||
<p>Enabling this helps mitigate traffic analysis by network observers, but it increases
|
||
bandwidth usage. Without this mitigation precise plain text size of application datagrams as
|
||
well as the total size of stream write bursts can be inferred by observers under certain
|
||
conditions. This analysis requires either an uncongested connection or application datagrams
|
||
too large to be coalesced.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.ack_frequency_config" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#256-259">Source</a><h4 class="code-header">pub fn <a href="#method.ack_frequency_config" class="fn">ack_frequency_config</a>(
|
||
&mut self,
|
||
value: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="struct.AckFrequencyConfig.html" title="struct noq_proto::AckFrequencyConfig">AckFrequencyConfig</a>>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>Specifies the ACK frequency config (see <a href="struct.AckFrequencyConfig.html" title="struct noq_proto::AckFrequencyConfig"><code>AckFrequencyConfig</code></a> for details)</p>
|
||
<p>The provided configuration will be ignored if the peer does not support the acknowledgement
|
||
frequency QUIC extension.</p>
|
||
<p>Defaults to <code>None</code>, which disables controlling the peer’s acknowledgement frequency. Even
|
||
if set to <code>None</code>, the local side still supports the acknowledgement frequency QUIC
|
||
extension and may use it in other ways.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.max_outgoing_bytes_per_second" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#264-267">Source</a><h4 class="code-header">pub fn <a href="#method.max_outgoing_bytes_per_second" class="fn">max_outgoing_bytes_per_second</a>(&mut self, value: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>>) -> &mut Self</h4></section></summary><div class="docblock"><p>Configures an outbound rate limit (in bytes per second) for each connection.</p>
|
||
<p>Defaults to <code>None</code>, which disables rate limiting.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.persistent_congestion_threshold" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#270-273">Source</a><h4 class="code-header">pub fn <a href="#method.persistent_congestion_threshold" class="fn">persistent_congestion_threshold</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Number of consecutive PTOs after which network is considered to be experiencing persistent congestion.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.keep_alive_interval" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#282-285">Source</a><h4 class="code-header">pub fn <a href="#method.keep_alive_interval" class="fn">keep_alive_interval</a>(&mut self, value: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>>) -> &mut Self</h4></section></summary><div class="docblock"><p>Period of inactivity before sending a keep-alive packet</p>
|
||
<p>Keep-alive packets prevent an inactive but otherwise healthy connection from timing out.</p>
|
||
<p><code>None</code> to disable, which is the default. Only one side of any given connection needs keep-alive
|
||
enabled for the connection to be preserved. Must be set lower than the idle_timeout of both
|
||
peers to be effective.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.crypto_buffer_size" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#288-291">Source</a><h4 class="code-header">pub fn <a href="#method.crypto_buffer_size" class="fn">crypto_buffer_size</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum quantity of out-of-order crypto layer data to buffer</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.allow_spin" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#297-300">Source</a><h4 class="code-header">pub fn <a href="#method.allow_spin" class="fn">allow_spin</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Whether the implementation is permitted to set the spin bit on this connection</p>
|
||
<p>This allows passive observers to easily judge the round trip time of a connection, which can
|
||
be useful for network administration but sacrifices a small amount of privacy.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.datagram_receive_buffer_size" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#308-311">Source</a><h4 class="code-header">pub fn <a href="#method.datagram_receive_buffer_size" class="fn">datagram_receive_buffer_size</a>(
|
||
&mut self,
|
||
value: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum number of incoming application datagram bytes to buffer, or None to disable
|
||
incoming datagrams</p>
|
||
<p>The peer is forbidden to send single datagrams larger than this size. If the aggregate size
|
||
of all datagrams that have been received from the peer but not consumed by the application
|
||
exceeds this value, old datagrams are dropped until it is no longer exceeded.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.datagram_send_buffer_size" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#319-322">Source</a><h4 class="code-header">pub fn <a href="#method.datagram_send_buffer_size" class="fn">datagram_send_buffer_size</a>(&mut self, value: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Maximum number of outgoing application datagram bytes to buffer</p>
|
||
<p>While datagrams are sent ASAP, it is possible for an application to generate data faster
|
||
than the link, or even the underlying hardware, can transmit them. This limits the amount of
|
||
memory that may be consumed in that case. When the send buffer is full and a new datagram is
|
||
sent, older datagrams are dropped until sufficient space is available.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.congestion_controller_factory" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#345-351">Source</a><h4 class="code-header">pub fn <a href="#method.congestion_controller_factory" class="fn">congestion_controller_factory</a>(
|
||
&mut self,
|
||
factory: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="congestion/trait.ControllerFactory.html" title="trait noq_proto::congestion::ControllerFactory">ControllerFactory</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>How to construct new <code>congestion::Controller</code>s</p>
|
||
<p>Typically the refcounted configuration of a <code>congestion::Controller</code>,
|
||
e.g. a <code>congestion::NewRenoConfig</code>.</p>
|
||
<h5 id="example"><a class="doc-anchor" href="#example">§</a>Example</h5>
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span><span class="kw-2">mut </span>config = TransportConfig::default();
|
||
config.congestion_controller_factory(Arc::new(congestion::NewRenoConfig::default()));</code></pre></div></div></details><details class="toggle method-toggle" open><summary><section id="method.enable_segmentation_offload" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#363-366">Source</a><h4 class="code-header">pub fn <a href="#method.enable_segmentation_offload" class="fn">enable_segmentation_offload</a>(&mut self, enabled: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Whether to use “Generic Segmentation Offload” to accelerate transmits, when supported by the
|
||
environment</p>
|
||
<p>Defaults to <code>true</code>.</p>
|
||
<p>GSO dramatically reduces CPU consumption when sending large numbers of packets with the same
|
||
headers, such as when transmitting bulk data on a connection. However, it is not supported
|
||
by all network interface drivers or packet inspection tools. <code>noq-udp</code> will attempt to
|
||
disable GSO automatically when unavailable, but this can lead to spurious packet loss at
|
||
startup, temporarily degrading performance.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.send_observed_address_reports" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#372-375">Source</a><h4 class="code-header">pub fn <a href="#method.send_observed_address_reports" class="fn">send_observed_address_reports</a>(&mut self, enabled: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Whether to send observed address reports to peers.</p>
|
||
<p>This will aid peers in inferring their reachable address, which in most NATd networks
|
||
will not be easily available to them.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.receive_observed_address_reports" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#383-386">Source</a><h4 class="code-header">pub fn <a href="#method.receive_observed_address_reports" class="fn">receive_observed_address_reports</a>(&mut self, enabled: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Whether to receive observed address reports from other peers.</p>
|
||
<p>Peers with the address discovery extension enabled that are willing to provide observed
|
||
address reports will do so if this transport parameter is set. In general, observed address
|
||
reports cannot be trusted. This, however, can aid the current endpoint in inferring its
|
||
reachable address, which in most NATd networks will not be easily available.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.max_concurrent_multipath_paths" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#396-399">Source</a><h4 class="code-header">pub fn <a href="#method.max_concurrent_multipath_paths" class="fn">max_concurrent_multipath_paths</a>(
|
||
&mut self,
|
||
max_concurrent: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>Enables the Multipath Extension for QUIC.</p>
|
||
<p>Setting this to any nonzero value will enable the Multipath Extension for QUIC,
|
||
<a href="https://datatracker.ietf.org/doc/draft-ietf-quic-multipath/">https://datatracker.ietf.org/doc/draft-ietf-quic-multipath/</a>.</p>
|
||
<p>The value provided specifies the number maximum number of paths this endpoint may open
|
||
concurrently when multipath is negotiated. For any path to be opened, the remote must
|
||
enable multipath as well.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.default_path_max_idle_timeout" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#411-414">Source</a><h4 class="code-header">pub fn <a href="#method.default_path_max_idle_timeout" class="fn">default_path_max_idle_timeout</a>(
|
||
&mut self,
|
||
timeout: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>Sets a default per-path maximum idle timeout</p>
|
||
<p>If the path is idle for this long the path will be abandoned. Bear in mind this will
|
||
interact with the <a href="struct.TransportConfig.html#method.max_idle_timeout" title="method noq_proto::TransportConfig::max_idle_timeout"><code>TransportConfig::max_idle_timeout</code></a>, if the last path is
|
||
abandoned the entire connection will be closed.</p>
|
||
<p>You can also change this using <a href="struct.Connection.html#method.set_path_max_idle_timeout" title="method noq_proto::Connection::set_path_max_idle_timeout"><code>Connection::set_path_max_idle_timeout</code></a> for
|
||
existing paths.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.default_path_keep_alive_interval" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#427-430">Source</a><h4 class="code-header">pub fn <a href="#method.default_path_keep_alive_interval" class="fn">default_path_keep_alive_interval</a>(
|
||
&mut self,
|
||
interval: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>Sets a default per-path keep alive interval</p>
|
||
<p>Note that this does not interact with the connection-wide
|
||
<a href="struct.TransportConfig.html#method.keep_alive_interval" title="method noq_proto::TransportConfig::keep_alive_interval"><code>TransportConfig::keep_alive_interval</code></a>. This setting will keep this path active,
|
||
<a href="struct.TransportConfig.html#method.keep_alive_interval" title="method noq_proto::TransportConfig::keep_alive_interval"><code>TransportConfig::keep_alive_interval</code></a> will keep the connection active, with no
|
||
control over which path is used for this.</p>
|
||
<p>You can also change this using <a href="struct.Connection.html#method.set_path_keep_alive_interval" title="method noq_proto::Connection::set_path_keep_alive_interval"><code>Connection::set_path_keep_alive_interval</code></a> for
|
||
existing path.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.max_remote_nat_traversal_addresses" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#452-458">Source</a><h4 class="code-header">pub fn <a href="#method.max_remote_nat_traversal_addresses" class="fn">max_remote_nat_traversal_addresses</a>(
|
||
&mut self,
|
||
max_addresses: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>Sets the maximum number of nat traversal addresses this endpoint allows the remote to
|
||
advertise</p>
|
||
<p>Setting this to any nonzero value will enable n0’s nat traversal protocol, loosely based in
|
||
the Nat Traversal Extension for QUIC, see
|
||
<a href="https://www.ietf.org/archive/id/draft-seemann-quic-nat-traversal-02.html">https://www.ietf.org/archive/id/draft-seemann-quic-nat-traversal-02.html</a></p>
|
||
<p>This implementation expects the multipath extension to be enabled as well. if not yet
|
||
enabled via <a href="struct.TransportConfig.html#method.max_concurrent_multipath_paths" title="method noq_proto::TransportConfig::max_concurrent_multipath_paths"><code>Self::max_concurrent_multipath_paths</code></a>, then that setting is set to 8.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.server_handshake_migration" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#474-477">Source</a><h4 class="code-header">pub fn <a href="#method.server_handshake_migration" class="fn">server_handshake_migration</a>(&mut self, allow_migration: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Sets whether the server is allowed to migrate once during the handshake.</p>
|
||
<p><strong>Enabling this is not RFC9000 compliant.</strong></p>
|
||
<p>Defaults to <code>false</code>.</p>
|
||
<p>Enabling this allows the server to migrate once during the handshake: it can send a
|
||
response from a different address than the client’s initial packet was sent to. Once
|
||
an authenticated Handshake packet is received the server can no longer migrate
|
||
during the handshake (or after the handshake if not other extension enables this).</p>
|
||
<p>This can be used to duplicate the client’s initial packet to multiple addresses for
|
||
the server and accept the fastest response. The server will discard all but the
|
||
first such initial, considering any remaining as duplicates.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.qlog_factory" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#484-487">Source</a><h4 class="code-header">pub fn <a href="#method.qlog_factory" class="fn">qlog_factory</a>(&mut self, factory: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a><dyn <a class="trait" href="trait.QlogFactory.html" title="trait noq_proto::QlogFactory">QlogFactory</a>>) -> &mut Self</h4></section></summary><div class="docblock"><p>Configures qlog capturing by setting a <a href="trait.QlogFactory.html" title="trait noq_proto::QlogFactory"><code>QlogFactory</code></a>.</p>
|
||
<p>This assigns a <a href="trait.QlogFactory.html" title="trait noq_proto::QlogFactory"><code>QlogFactory</code></a> that produces qlog capture configurations for
|
||
individual connections.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.qlog_from_env" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#499-501">Source</a><h4 class="code-header">pub fn <a href="#method.qlog_from_env" class="fn">qlog_from_env</a>(&mut self, prefix: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -> &mut Self</h4></section></summary><div class="docblock"><p>Configures qlog capturing through the <code>QLOGDIR</code> environment variable.</p>
|
||
<p>This uses <a href="struct.QlogFileFactory.html#method.from_env" title="associated function noq_proto::QlogFileFactory::from_env"><code>QlogFileFactory::from_env</code></a> to create a factory to write qlog traces
|
||
into the directory set through the <code>QLOGDIR</code> environment variable.</p>
|
||
<p>If <code>QLOGDIR</code> is not set, no traces will be written. If <code>QLOGDIR</code> is set to a path
|
||
that does not exist, it will be created.</p>
|
||
<p>The files will be prefixed with <code>prefix</code>.</p>
|
||
</div></details><details class="toggle method-toggle" open><summary><section id="method.qlog_from_path" class="method"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#508-512">Source</a><h4 class="code-header">pub fn <a href="#method.qlog_from_path" class="fn">qlog_from_path</a>(
|
||
&mut self,
|
||
path: impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="struct" href="https://doc.rust-lang.org/nightly/std/path/struct.Path.html" title="struct std::path::Path">Path</a>>,
|
||
prefix: &<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
|
||
) -> &mut Self</h4></section></summary><div class="docblock"><p>Configures qlog capturing into a directory.</p>
|
||
<p>This uses <a href="struct.QlogFileFactory.html" title="struct noq_proto::QlogFileFactory"><code>QlogFileFactory</code></a> to create a factory to write qlog traces into
|
||
the specified directory. The files will be prefixed with <code>prefix</code>.</p>
|
||
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-TransportConfig" class="impl"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#29">Source</a><a href="#impl-Clone-for-TransportConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#29">Source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&self) -> <a class="struct" href="struct.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h4></section></summary><div class='docblock'>Returns a duplicate of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#245-247">Source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&mut self, source: &Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-TransportConfig" class="impl"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#602-695">Source</a><a href="#impl-Debug-for-TransportConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#603-694">Source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, fmt: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a><'_>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Default-for-TransportConfig" class="impl"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#544-600">Source</a><a href="#impl-Default-for-TransportConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.default" class="method trait-impl"><a class="src rightside" href="../src/noq_proto/config/transport.rs.html#545-599">Source</a><a href="#method.default" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default" class="fn">default</a>() -> Self</h4></section></summary><div class='docblock'>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/nightly/core/default/trait.Default.html#tymethod.default">Read more</a></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-TransportConfig" class="impl"><a href="#impl-Freeze-for-TransportConfig" 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.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section><section id="impl-RefUnwindSafe-for-TransportConfig" class="impl"><a href="#impl-RefUnwindSafe-for-TransportConfig" 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.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section><section id="impl-Send-for-TransportConfig" class="impl"><a href="#impl-Send-for-TransportConfig" 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.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section><section id="impl-Sync-for-TransportConfig" class="impl"><a href="#impl-Sync-for-TransportConfig" 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.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section><section id="impl-Unpin-for-TransportConfig" class="impl"><a href="#impl-Unpin-for-TransportConfig" 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.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</a></h3></section><section id="impl-UnwindSafe-for-TransportConfig" class="impl"><a href="#impl-UnwindSafe-for-TransportConfig" 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.TransportConfig.html" title="struct noq_proto::TransportConfig">TransportConfig</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#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <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#139">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>(&self) -> <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#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> 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#214">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>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&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#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> 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#222">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>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&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-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#515">Source</a><a href="#impl-CloneToUninit-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#517">Source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&self, dest: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut </a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>clone_to_uninit</code>)</span></div></span><div class='docblock'>Performs copy-assignment from <code>self</code> to <code>dest</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit">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#785">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> 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#788">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) -> 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-Instrument-for-T" class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 class="code-header">impl<T> Instrument for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl"><a href="#method.instrument" class="anchor">§</a><h4 class="code-header">fn <a class="fn">instrument</a>(self, span: Span) -> Instrumented<Self></h4></section></summary><div class='docblock'>Instruments this type with the provided [<code>Span</code>], returning an
|
||
<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl"><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">in_current_span</a>(self) -> Instrumented<Self></h4></section></summary><div class='docblock'>Instruments this type with the <a href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</code></a>, returning an
|
||
<code>Instrumented</code> wrapper. <a>Read more</a></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#767-769">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> 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><T>,</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#777">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) -> 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><T> 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<T> <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>) -> <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a><Self, Self></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<Self, Self></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<Self, Self></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><F>(self, into_left: F) -> <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a><Self, Self><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>(&Self) -> <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<Self, Self></code></a>
|
||
if <code>into_left(&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<Self, Self></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-Same-for-T" class="impl"><a class="src rightside" href="https://docs.rs/typenum/1.19.0/src/typenum/type_operators.rs.html#34">Source</a><a href="#impl-Same-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://docs.rs/typenum/1.19.0/typenum/type_operators/trait.Same.html" title="trait typenum::type_operators::Same">Same</a> for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Output" class="associatedtype trait-impl"><a class="src rightside" href="https://docs.rs/typenum/1.19.0/src/typenum/type_operators.rs.html#35">Source</a><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a href="https://docs.rs/typenum/1.19.0/typenum/type_operators/trait.Same.html#associatedtype.Output" class="associatedtype">Output</a> = T</h4></section></summary><div class='docblock'>Should always be <code>Self</code></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#84-86">Source</a><a href="#impl-ToOwned-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
|
||
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#88">Source</a><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#89">Source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&self) -> T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#93">Source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut T</a>)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">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#827-829">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> 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><T>,</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/nightly/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/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#834">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) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<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'>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#811-813">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> 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><T>,</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/nightly/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/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<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#818">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) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<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'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-T" class="impl"><a href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 class="code-header">impl<T> WithSubscriber for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl"><a href="#method.with_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_subscriber</a><S>(self, subscriber: S) -> WithDispatch<Self><div class="where">where
|
||
S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><Dispatch>,</div></h4></section></summary><div class='docblock'>Attaches the provided <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
|
||
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl"><a href="#method.with_current_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -> WithDispatch<Self></h4></section></summary><div class='docblock'>Attaches the current <a href="crate::dispatcher#setting-the-default-subscriber">default</a> <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
|
||
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details></div></section></div></main></body></html> |