}</code></pre><detailsclass="toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>Hints when the caller identifies a network change.</p>
</div></details><h2id="required-methods"class="section-header">Required Methods<ahref="#required-methods"class="anchor">§</a></h2><divclass="methods"><detailsclass="toggle method-toggle"open><summary><sectionid="tymethod.is_path_recoverable"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6955">Source</a><h4class="code-header">fn <ahref="#tymethod.is_path_recoverable"class="fn">is_path_recoverable</a>(&self, path_id: <aclass="struct"href="struct.PathId.html"title="struct noq::PathId">PathId</a>, network_path: <aclass="struct"href="../noq_proto/struct.FourTuple.html"title="struct noq_proto::FourTuple">FourTuple</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Inform the connection if a path may recover after a network change.</p>
</div></details><h2id="required-methods"class="section-header">Required Methods<ahref="#required-methods"class="anchor">§</a></h2><divclass="methods"><detailsclass="toggle method-toggle"open><summary><sectionid="tymethod.is_path_recoverable"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6990">Source</a><h4class="code-header">fn <ahref="#tymethod.is_path_recoverable"class="fn">is_path_recoverable</a>(&self, path_id: <aclass="struct"href="struct.PathId.html"title="struct noq::PathId">PathId</a>, network_path: <aclass="struct"href="../noq_proto/struct.FourTuple.html"title="struct noq_proto::FourTuple">FourTuple</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Inform the connection if a path may recover after a network change.</p>
<p>After network changes, paths may not be recoverable. In this case, waiting for the path to
become idle may take longer than what is desirable. If <ahref="trait.NetworkChangeHint.html#tymethod.is_path_recoverable"title="method noq_proto::connection::NetworkChangeHint::is_path_recoverable::is_path_recoverable"><code>Self::is_path_recoverable</code></a>
returns <code>false</code>, a multipath-enabled, client-side connection will establish a new path to
with events of the same <ahref="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html"title="struct std::time::Instant"><code>Instant</code></a> may be interleaved in any order with a
call to <ahref="struct.Connection.html#method.handle_event"title="method noq_proto::Connection::handle_event"><code>handle_event</code></a> at that same instant; however
events or timeouts with different instants must not be interleaved.</p>
</div></details><h2id="implementations"class="section-header">Implementations<ahref="#implementations"class="anchor">§</a></h2><divid="implementations-list"><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Connection"class="impl"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#322-6935">Source</a><ahref="#impl-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.poll_timeout"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#464-466">Source</a><h4class="code-header">pub fn <ahref="#method.poll_timeout"class="fn">poll_timeout</a>(&mut self) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html"title="struct std::time::Instant">Instant</a>></h4></section></summary><divclass="docblock"><p>Returns the next time at which <code>handle_timeout</code> should be called</p>
</div></details><h2id="implementations"class="section-header">Implementations<ahref="#implementations"class="anchor">§</a></h2><divid="implementations-list"><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Connection"class="impl"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#322-6970">Source</a><ahref="#impl-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.poll_timeout"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#464-466">Source</a><h4class="code-header">pub fn <ahref="#method.poll_timeout"class="fn">poll_timeout</a>(&mut self) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html"title="struct std::time::Instant">Instant</a>></h4></section></summary><divclass="docblock"><p>Returns the next time at which <code>handle_timeout</code> should be called</p>
<p>The value returned may change after:</p>
<ul>
<li>the application performed some I/O on the connection</li>
@@ -93,21 +93,24 @@ when receiving a PATH_ABANDON from the peer for a path that was never opened loc
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="enum"href="enum.PathStatus.html"title="enum noq_proto::PathStatus">PathStatus</a>, <aclass="enum"href="enum.SetPathStatusError.html"title="enum noq_proto::SetPathStatusError">SetPathStatusError</a>></h4></section></summary><divclass="docblock"><p>Sets the <ahref="enum.PathStatus.html"title="enum noq_proto::PathStatus"><code>PathStatus</code></a> for a known <ahref="struct.PathId.html"title="struct noq_proto::PathId"><code>PathId</code></a></p>
<p>Returns the previous path status on success.</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html"title="struct core::time::Duration">Duration</a>>, <aclass="struct"href="struct.ClosedPath.html"title="struct noq_proto::ClosedPath">ClosedPath</a>></h4></section></summary><divclass="docblock"><p>Sets the max_idle_timeout for a specific path</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html"title="struct core::time::Duration">Duration</a>>, <aclass="struct"href="struct.ClosedPath.html"title="struct noq_proto::ClosedPath">ClosedPath</a>></h4></section></summary><divclass="docblock"><p>Sets the max_idle_timeout for a specific path.</p>
<p>The PathIdle timer is immediately re-armed accounting for already-elapsed
idle time. Setting <code>None</code> disables the timeout and stops the timer.</p>
<p>See <ahref="struct.TransportConfig.html#method.default_path_max_idle_timeout"title="method noq_proto::TransportConfig::default_path_max_idle_timeout"><code>TransportConfig::default_path_max_idle_timeout</code></a> for details.</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html"title="struct core::time::Duration">Duration</a>>, <aclass="struct"href="struct.ClosedPath.html"title="struct noq_proto::ClosedPath">ClosedPath</a>></h4></section></summary><divclass="docblock"><p>Sets the keep_alive_interval for a specific path</p>
<p>See <ahref="struct.TransportConfig.html#method.default_path_keep_alive_interval"title="method noq_proto::TransportConfig::default_path_keep_alive_interval"><code>TransportConfig::default_path_keep_alive_interval</code></a> for details.</p>
<p>This does not ensure delivery of outstanding data. It is the application’s responsibility to
call this only when all important communications have been completed, e.g. by calling
<ahref="struct.SendStream.html#method.finish"title="method noq_proto::SendStream::finish"><code>SendStream::finish</code></a> on outstanding streams and waiting for the corresponding
<p>If <ahref="struct.Streams.html#method.send_streams"title="method noq_proto::Streams::send_streams"><code>Streams::send_streams</code></a> returns 0, all outstanding stream data has been
delivered. There may still be data from the peer that has not been received.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.ping"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2566-2572">Source</a><h4class="code-header">pub fn <ahref="#method.ping"class="fn">ping</a>(&mut self)</h4></section></summary><divclass="docblock"><p>Ping the remote endpoint</p>
<p>Causes an ACK-eliciting packet to be transmitted on the connection.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.ping_path"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2551-2558">Source</a><h4class="code-header">pub fn <ahref="#method.ping_path"class="fn">ping_path</a>(&mut self, path: <aclass="struct"href="struct.PathId.html"title="struct noq_proto::PathId">PathId</a>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <aclass="struct"href="struct.ClosedPath.html"title="struct noq_proto::ClosedPath">ClosedPath</a>></h4></section></summary><divclass="docblock"><p>Ping the remote endpoint over a specific path</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.ping_path"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2577-2584">Source</a><h4class="code-header">pub fn <ahref="#method.ping_path"class="fn">ping_path</a>(&mut self, path: <aclass="struct"href="struct.PathId.html"title="struct noq_proto::PathId">PathId</a>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <aclass="struct"href="struct.ClosedPath.html"title="struct noq_proto::ClosedPath">ClosedPath</a>></h4></section></summary><divclass="docblock"><p>Ping the remote endpoint over a specific path</p>
<p>Causes an ACK-eliciting packet to be transmitted on the path.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_handshaking"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2586-2588">Source</a><h4class="code-header">pub fn <ahref="#method.is_handshaking"class="fn">is_handshaking</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether the connection is in the process of being established</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_handshaking"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2612-2614">Source</a><h4class="code-header">pub fn <ahref="#method.is_handshaking"class="fn">is_handshaking</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether the connection is in the process of being established</p>
<p>If this returns <code>false</code>, the connection may be either established or closed, signaled by the
emission of a <code>Connected</code> or <code>ConnectionLost</code> message respectively.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_closed"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2597-2599">Source</a><h4class="code-header">pub fn <ahref="#method.is_closed"class="fn">is_closed</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether the connection is closed</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_closed"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2623-2625">Source</a><h4class="code-header">pub fn <ahref="#method.is_closed"class="fn">is_closed</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether the connection is closed</p>
<p>Closed connections cannot transport any further data. A connection becomes closed when
either peer application intentionally closes it, or when either transport layer detects an
error such as a time-out or certificate validation failure.</p>
<p>A <code>ConnectionLost</code> event is emitted with details when the connection becomes closed.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_drained"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2605-2607">Source</a><h4class="code-header">pub fn <ahref="#method.is_drained"class="fn">is_drained</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether there is no longer any need to keep the connection around</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_drained"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2631-2633">Source</a><h4class="code-header">pub fn <ahref="#method.is_drained"class="fn">is_drained</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether there is no longer any need to keep the connection around</p>
<p>Closed connections become drained after a brief timeout to absorb any remaining in-flight
packets from the peer. All drained connections have been closed.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.accepted_0rtt"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2612-2614">Source</a><h4class="code-header">pub fn <ahref="#method.accepted_0rtt"class="fn">accepted_0rtt</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>For clients, if the peer accepted the 0-RTT data packets</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.accepted_0rtt"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2638-2640">Source</a><h4class="code-header">pub fn <ahref="#method.accepted_0rtt"class="fn">accepted_0rtt</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>For clients, if the peer accepted the 0-RTT data packets</p>
<p>The value is meaningless until after the handshake completes.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.has_0rtt"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2617-2619">Source</a><h4class="code-header">pub fn <ahref="#method.has_0rtt"class="fn">has_0rtt</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether 0-RTT is/was possible during the handshake</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.has_pending_retransmits"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2622-2624">Source</a><h4class="code-header">pub fn <ahref="#method.has_pending_retransmits"class="fn">has_pending_retransmits</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether there are any pending retransmits</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.side"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2627-2629">Source</a><h4class="code-header">pub fn <ahref="#method.side"class="fn">side</a>(&self) -><aclass="enum"href="enum.Side.html"title="enum noq_proto::Side">Side</a></h4></section></summary><divclass="docblock"><p>Look up whether we’re the client or server of this Connection</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.has_0rtt"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2643-2645">Source</a><h4class="code-header">pub fn <ahref="#method.has_0rtt"class="fn">has_0rtt</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether 0-RTT is/was possible during the handshake</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.has_pending_retransmits"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2648-2650">Source</a><h4class="code-header">pub fn <ahref="#method.has_pending_retransmits"class="fn">has_pending_retransmits</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether there are any pending retransmits</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.side"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2653-2655">Source</a><h4class="code-header">pub fn <ahref="#method.side"class="fn">side</a>(&self) -><aclass="enum"href="enum.Side.html"title="enum noq_proto::Side">Side</a></h4></section></summary><divclass="docblock"><p>Look up whether we’re the client or server of this Connection</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="enum"href="https://doc.rust-lang.org/nightly/core/net/socket_addr/enum.SocketAddr.html"title="enum core::net::socket_addr::SocketAddr">SocketAddr</a>>, <aclass="struct"href="struct.ClosedPath.html"title="struct noq_proto::ClosedPath">ClosedPath</a>></h4></section></summary><divclass="docblock"><p>Get the address observed by the remote over the given path</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.rtt"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2644-2646">Source</a><h4class="code-header">pub fn <ahref="#method.rtt"class="fn">rtt</a>(&self, path_id: <aclass="struct"href="struct.PathId.html"title="struct noq_proto::PathId">PathId</a>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html"title="struct core::time::Duration">Duration</a>></h4></section></summary><divclass="docblock"><p>Current best estimate of this connection’s latency (round-trip-time)</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.congestion_state"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2649-2651">Source</a><h4class="code-header">pub fn <ahref="#method.congestion_state"class="fn">congestion_state</a>(&self, path_id: <aclass="struct"href="struct.PathId.html"title="struct noq_proto::PathId">PathId</a>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><&dyn <aclass="trait"href="congestion/trait.Controller.html"title="trait noq_proto::congestion::Controller">Controller</a>></h4></section></summary><divclass="docblock"><p>Current state of this connection’s congestion controller, for debugging purposes</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.set_max_concurrent_streams"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2657-2663">Source</a><h4class="code-header">pub fn <ahref="#method.set_max_concurrent_streams"class="fn">set_max_concurrent_streams</a>(&mut self, dir: <aclass="enum"href="enum.Dir.html"title="enum noq_proto::Dir">Dir</a>, count: <aclass="struct"href="struct.VarInt.html"title="struct noq_proto::VarInt">VarInt</a>)</h4></section></summary><divclass="docblock"><p>Modify the number of remotely initiated streams that may be concurrently open</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.rtt"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2670-2672">Source</a><h4class="code-header">pub fn <ahref="#method.rtt"class="fn">rtt</a>(&self, path_id: <aclass="struct"href="struct.PathId.html"title="struct noq_proto::PathId">PathId</a>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html"title="struct core::time::Duration">Duration</a>></h4></section></summary><divclass="docblock"><p>Current best estimate of this connection’s latency (round-trip-time)</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.congestion_state"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2675-2677">Source</a><h4class="code-header">pub fn <ahref="#method.congestion_state"class="fn">congestion_state</a>(&self, path_id: <aclass="struct"href="struct.PathId.html"title="struct noq_proto::PathId">PathId</a>) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html"title="enum core::option::Option">Option</a><&dyn <aclass="trait"href="congestion/trait.Controller.html"title="trait noq_proto::congestion::Controller">Controller</a>></h4></section></summary><divclass="docblock"><p>Current state of this connection’s congestion controller, for debugging purposes</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.set_max_concurrent_streams"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2683-2689">Source</a><h4class="code-header">pub fn <ahref="#method.set_max_concurrent_streams"class="fn">set_max_concurrent_streams</a>(&mut self, dir: <aclass="enum"href="enum.Dir.html"title="enum noq_proto::Dir">Dir</a>, count: <aclass="struct"href="struct.VarInt.html"title="struct noq_proto::VarInt">VarInt</a>)</h4></section></summary><divclass="docblock"><p>Modify the number of remotely initiated streams that may be concurrently open</p>
<p>No streams may be opened by the peer unless fewer than <code>count</code> are already open. Large
<code>count</code>s increase both minimum and worst-case memory consumption.</p>
@@ -185,16 +188,16 @@ actively reduce paths they must be closed using <a href="struct.Connection.html#
can also be used to close not-yet-opened paths.</p>
<p>If multipath is not negotiated (see the <ahref="struct.TransportConfig.html"title="struct noq_proto::TransportConfig"><code>TransportConfig</code></a>) this can not enable
multipath and will fail.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.max_concurrent_streams"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2714-2716">Source</a><h4class="code-header">pub fn <ahref="#method.max_concurrent_streams"class="fn">max_concurrent_streams</a>(&self, dir: <aclass="enum"href="enum.Dir.html"title="enum noq_proto::Dir">Dir</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><divclass="docblock"><p>Current number of remotely initiated streams that may be concurrently open</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.max_concurrent_streams"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2740-2742">Source</a><h4class="code-header">pub fn <ahref="#method.max_concurrent_streams"class="fn">max_concurrent_streams</a>(&self, dir: <aclass="enum"href="enum.Dir.html"title="enum noq_proto::Dir">Dir</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><divclass="docblock"><p>Current number of remotely initiated streams that may be concurrently open</p>
<p>If the target for this limit is reduced using <ahref="struct.Connection.html#method.set_max_concurrent_streams"title="method noq_proto::Connection::set_max_concurrent_streams"><code>set_max_concurrent_streams</code></a>,
it will not change immediately, even if fewer streams are open. Instead, it will
decrement by one for each time a remotely initiated stream of matching directionality is closed.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_multipath_negotiated"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2734-2738">Source</a><h4class="code-header">pub fn <ahref="#method.is_multipath_negotiated"class="fn">is_multipath_negotiated</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether the Multipath for QUIC extension is enabled.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_multipath_negotiated"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#2760-2764">Source</a><h4class="code-header">pub fn <ahref="#method.is_multipath_negotiated"class="fn">is_multipath_negotiated</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether the Multipath for QUIC extension is enabled.</p>
<p>Multipath is only enabled after the handshake is completed and if it was enabled by both
@@ -209,26 +212,26 @@ paths as non recoverable when necessary accelerates connectivity re-establishmen
allow it altogether.</p>
<p>The optional <code>hint</code> allows callers to indicate when paths are non-recoverable and should be
migrated to new a <ahref="struct.PathId.html"title="struct noq_proto::PathId"><code>PathId</code></a>.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.current_mtu"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6628-6635">Source</a><h4class="code-header">pub fn <ahref="#method.current_mtu"class="fn">current_mtu</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a></h4></section></summary><divclass="docblock"><p>Storage size required for the largest packet that can be transmitted on all currently
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.current_mtu"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6663-6670">Source</a><h4class="code-header">pub fn <ahref="#method.current_mtu"class="fn">current_mtu</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a></h4></section></summary><divclass="docblock"><p>Storage size required for the largest packet that can be transmitted on all currently
available paths</p>
<p>Buffers passed to <ahref="struct.Connection.html#method.poll_transmit"title="method noq_proto::Connection::poll_transmit"><code>Connection::poll_transmit</code></a> should be at least this large.</p>
<p>When multipath is enabled, this value is the minimum MTU across all available paths.</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <aclass="enum"href="n0_nat_traversal/enum.Error.html"title="enum noq_proto::n0_nat_traversal::Error">Error</a>></h4></section></summary><divclass="docblock"><p>Add addresses the local endpoint considers are reachable for nat traversal.</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <aclass="enum"href="n0_nat_traversal/enum.Error.html"title="enum noq_proto::n0_nat_traversal::Error">Error</a>></h4></section></summary><divclass="docblock"><p>Removes an address the endpoing no longer considers reachable for nat traversal</p>
<p>Addresses not present in the set will be silently ignored.</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"title="struct alloc::vec::Vec">Vec</a><<aclass="enum"href="https://doc.rust-lang.org/nightly/core/net/socket_addr/enum.SocketAddr.html"title="enum core::net::socket_addr::SocketAddr">SocketAddr</a>>, <aclass="enum"href="n0_nat_traversal/enum.Error.html"title="enum noq_proto::n0_nat_traversal::Error">Error</a>></h4></section></summary><divclass="docblock"><p>Get the current local nat traversal addresses</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"title="struct alloc::vec::Vec">Vec</a><<aclass="enum"href="https://doc.rust-lang.org/nightly/core/net/socket_addr/enum.SocketAddr.html"title="enum core::net::socket_addr::SocketAddr">SocketAddr</a>>, <aclass="enum"href="n0_nat_traversal/enum.Error.html"title="enum noq_proto::n0_nat_traversal::Error">Error</a>></h4></section></summary><divclass="docblock"><p>Get the currently advertised nat traversal addresses by the server</p>
) -><aclass="enum"href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html"title="struct alloc::vec::Vec">Vec</a><<aclass="enum"href="https://doc.rust-lang.org/nightly/core/net/socket_addr/enum.SocketAddr.html"title="enum core::net::socket_addr::SocketAddr">SocketAddr</a>>, <aclass="enum"href="n0_nat_traversal/enum.Error.html"title="enum noq_proto::n0_nat_traversal::Error">Error</a>></h4></section></summary><divclass="docblock"><p>Initiates a new nat traversal round</p>
@@ -238,7 +241,7 @@ initiated, the previous one is cancelled, and paths that have not been opened ar
<p>Returns the server addresses that are now being probed.
If addresses fail due to spurious errors, these might succeed later and not be returned in
this set.</p>
</div></details></div></details></div><h2id="trait-implementations"class="section-header">Trait Implementations<ahref="#trait-implementations"class="anchor">§</a></h2><divid="trait-implementations-list"><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Debug-for-Connection"class="impl"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6937-6943">Source</a><ahref="#impl-Debug-for-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html"title="trait core::fmt::Debug">Debug</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.fmt"class="method trait-impl"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6938-6942">Source</a><ahref="#method.fmt"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt"class="fn">fmt</a>(&self, f: &mut <aclass="struct"href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html"title="struct core::fmt::Formatter">Formatter</a><'_>) -><aclass="type"href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html"title="type core::fmt::Result">Result</a></h4></section></summary><divclass='docblock'>Formats the value using the given formatter. <ahref="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2id="synthetic-implementations"class="section-header">Auto Trait Implementations<ahref="#synthetic-implementations"class="anchor">§</a></h2><divid="synthetic-implementations-list"><sectionid="impl-Freeze-for-Connection"class="impl"><ahref="#impl-Freeze-for-Connection"class="anchor">§</a><h3class="code-header">impl !<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html"title="trait core::marker::Freeze">Freeze</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-RefUnwindSafe-for-Connection"class="impl"><ahref="#impl-RefUnwindSafe-for-Connection"class="anchor">§</a><h3class="code-header">impl !<aclass="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 <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-Send-for-Connection"class="impl"><ahref="#impl-Send-for-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-Sync-for-Connection"class="impl"><ahref="#impl-Sync-for-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-Unpin-for-Connection"class="impl"><ahref="#impl-Unpin-for-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html"title="trait core::marker::Unpin">Unpin</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-UnwindSafe-for-Connection"class="impl"><ahref="#impl-UnwindSafe-for-Connection"class="anchor">§</a><h3class="code-header">impl !<aclass="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 <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section></div><h2id="blanket-implementations"class="section-header">Blanket Implementations<ahref="#blanket-implementations"class="anchor">§</a></h2><divid="blanket-implementations-list"><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-Any-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#138">Source</a><ahref="#impl-Any-for-T"class="anchor">§</a><h3class="code-header">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> for T<divclass="where">where
</div></details></div></details></div><h2id="trait-implementations"class="section-header">Trait Implementations<ahref="#trait-implementations"class="anchor">§</a></h2><divid="trait-implementations-list"><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-Debug-for-Connection"class="impl"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6972-6978">Source</a><ahref="#impl-Debug-for-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html"title="trait core::fmt::Debug">Debug</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.fmt"class="method trait-impl"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6973-6977">Source</a><ahref="#method.fmt"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt"class="fn">fmt</a>(&self, f: &mut <aclass="struct"href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html"title="struct core::fmt::Formatter">Formatter</a><'_>) -><aclass="type"href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html"title="type core::fmt::Result">Result</a></h4></section></summary><divclass='docblock'>Formats the value using the given formatter. <ahref="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2id="synthetic-implementations"class="section-header">Auto Trait Implementations<ahref="#synthetic-implementations"class="anchor">§</a></h2><divid="synthetic-implementations-list"><sectionid="impl-Freeze-for-Connection"class="impl"><ahref="#impl-Freeze-for-Connection"class="anchor">§</a><h3class="code-header">impl !<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html"title="trait core::marker::Freeze">Freeze</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-RefUnwindSafe-for-Connection"class="impl"><ahref="#impl-RefUnwindSafe-for-Connection"class="anchor">§</a><h3class="code-header">impl !<aclass="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 <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-Send-for-Connection"class="impl"><ahref="#impl-Send-for-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html"title="trait core::marker::Send">Send</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-Sync-for-Connection"class="impl"><ahref="#impl-Sync-for-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html"title="trait core::marker::Sync">Sync</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-Unpin-for-Connection"class="impl"><ahref="#impl-Unpin-for-Connection"class="anchor">§</a><h3class="code-header">impl <aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html"title="trait core::marker::Unpin">Unpin</a> for <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section><sectionid="impl-UnwindSafe-for-Connection"class="impl"><ahref="#impl-UnwindSafe-for-Connection"class="anchor">§</a><h3class="code-header">impl !<aclass="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 <aclass="struct"href="struct.Connection.html"title="struct noq_proto::Connection">Connection</a></h3></section></div><h2id="blanket-implementations"class="section-header">Blanket Implementations<ahref="#blanket-implementations"class="anchor">§</a></h2><divid="blanket-implementations-list"><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-Any-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#138">Source</a><ahref="#impl-Any-for-T"class="anchor">§</a><h3class="code-header">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html"title="trait core::any::Any">Any</a> for T<divclass="where">where
T: 'static + ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.type_id"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">Source</a><ahref="#method.type_id"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id"class="fn">type_id</a>(&self) -><aclass="struct"href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html"title="struct core::any::TypeId">TypeId</a></h4></section></summary><divclass='docblock'>Gets the <code>TypeId</code> of <code>self</code>. <ahref="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-Borrow%3CT%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#212">Source</a><ahref="#impl-Borrow%3CT%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html"title="trait core::borrow::Borrow">Borrow</a><T> for T<divclass="where">where
T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.borrow"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214">Source</a><ahref="#method.borrow"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow"class="fn">borrow</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&T</a></h4></section></summary><divclass='docblock'>Immutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-BorrowMut%3CT%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">Source</a><ahref="#impl-BorrowMut%3CT%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T><aclass="trait"href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html"title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T<divclass="where">where
T: ?<aclass="trait"href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html"title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.borrow_mut"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#222">Source</a><ahref="#method.borrow_mut"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut"class="fn">borrow_mut</a>(&mut self) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut T</a></h4></section></summary><divclass='docblock'>Mutably borrows from an owned value. <ahref="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-From%3CT%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#785">Source</a><ahref="#impl-From%3CT%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T><aclass="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><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.from"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#788">Source</a><ahref="#method.from"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from"class="fn">from</a>(t: T) -> T</h4></section></summary><divclass="docblock"><p>Returns the argument unchanged.</p>
}</code></pre><detailsclass="toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><p>Hints when the caller identifies a network change.</p>
</div></details><h2id="required-methods"class="section-header">Required Methods<ahref="#required-methods"class="anchor">§</a></h2><divclass="methods"><detailsclass="toggle method-toggle"open><summary><sectionid="tymethod.is_path_recoverable"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6955">Source</a><h4class="code-header">fn <ahref="#tymethod.is_path_recoverable"class="fn">is_path_recoverable</a>(&self, path_id: <aclass="struct"href="struct.PathId.html"title="struct noq_proto::PathId">PathId</a>, network_path: <aclass="struct"href="struct.FourTuple.html"title="struct noq_proto::FourTuple">FourTuple</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Inform the connection if a path may recover after a network change.</p>
</div></details><h2id="required-methods"class="section-header">Required Methods<ahref="#required-methods"class="anchor">§</a></h2><divclass="methods"><detailsclass="toggle method-toggle"open><summary><sectionid="tymethod.is_path_recoverable"class="method"><aclass="src rightside"href="../src/noq_proto/connection/mod.rs.html#6990">Source</a><h4class="code-header">fn <ahref="#tymethod.is_path_recoverable"class="fn">is_path_recoverable</a>(&self, path_id: <aclass="struct"href="struct.PathId.html"title="struct noq_proto::PathId">PathId</a>, network_path: <aclass="struct"href="struct.FourTuple.html"title="struct noq_proto::FourTuple">FourTuple</a>) -><aclass="primitive"href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Inform the connection if a path may recover after a network change.</p>
<p>After network changes, paths may not be recoverable. In this case, waiting for the path to
become idle may take longer than what is desirable. If <ahref="trait.NetworkChangeHint.html#tymethod.is_path_recoverable"><code>Self::is_path_recoverable</code></a>
returns <code>false</code>, a multipath-enabled, client-side connection will establish a new path to
Some files were not shown because too many files have changed in this diff
Show More
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.