mirror of
https://github.com/n0-computer/noq.git
synced 2026-09-24 03:58:19 +00:00
14 lines
24 KiB
HTML
14 lines
24 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="Low-level protocol logic for the QUIC protoocol"><title>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="../crates.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 mod crate"><!--[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="#">Crate noq_proto</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"><ul class="block"><li><a id="all-types" href="all.html">All Items</a></li></ul><section id="rustdoc-toc"><h3><a href="#reexports">Crate Items</a></h3><ul class="block"><li><a href="#reexports" title="Re-exports">Re-exports</a></li><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#constants" title="Constants">Constants</a></li><li><a href="#traits" title="Traits">Traits</a></li></ul></section><div id="rustdoc-modnav"></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"><h1>Crate <span>noq_<wbr>proto</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/lib.rs.html#1-483">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Low-level protocol logic for the QUIC protoocol</p>
|
||
<p>noq-proto contains a fully deterministic implementation of QUIC protocol logic. It contains
|
||
no networking code and does not get any relevant timestamps from the operating system. Most
|
||
users may want to use the futures-based noq API instead.</p>
|
||
<p>The noq-proto API might be of interest if you want to use it from a C or C++ project
|
||
through C bindings or if you want to use a different event loop than the one tokio provides.</p>
|
||
<p>The most important types are <code>Endpoint</code>, which conceptually represents the protocol state for
|
||
a single socket and mostly manages configuration and dispatches incoming datagrams to the
|
||
related <code>Connection</code>. <code>Connection</code> types contain the bulk of the protocol logic related to
|
||
managing a single connection and all the related state (such as streams).</p>
|
||
</div></details><h2 id="reexports" class="section-header">Re-exports<a href="#reexports" class="anchor">§</a></h2><dl class="item-table reexports"><dt id="reexport.rustls"><code>pub use rustls;</code></dt></dl><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="bench_exports/index.html" title="mod noq_proto::bench_exports">bench_<wbr>exports</a></dt><dd>Exports for benchmarks</dd><dt><a class="mod" href="coding/index.html" title="mod noq_proto::coding">coding</a></dt><dd>Coding related traits.</dd><dt><a class="mod" href="congestion/index.html" title="mod noq_proto::congestion">congestion</a></dt><dd>Logic for controlling the rate at which data is sent</dd><dt><a class="mod" href="crypto/index.html" title="mod noq_proto::crypto">crypto</a></dt><dd>Traits and implementations for the QUIC cryptography protocol</dd><dt><a class="mod" href="n0_nat_traversal/index.html" title="mod noq_proto::n0_nat_traversal">n0_<wbr>nat_<wbr>traversal</a></dt><dd>n0’s (<a href="https://n0.computer">https://n0.computer</a>) NAT Traversal protocol implementation.</dd><dt><a class="mod" href="transport_parameters/index.html" title="mod noq_proto::transport_parameters">transport_<wbr>parameters</a></dt><dd>QUIC connection transport parameters</dd></dl><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.AcceptError.html" title="struct noq_proto::AcceptError">Accept<wbr>Error</a></dt><dd>Error type for attempting to accept an <a href="struct.Incoming.html" title="struct noq_proto::Incoming"><code>Incoming</code></a></dd><dt><a class="struct" href="struct.AckFrequencyConfig.html" title="struct noq_proto::AckFrequencyConfig">AckFrequency<wbr>Config</a></dt><dd>Parameters for controlling the peer’s acknowledgement frequency</dd><dt><a class="struct" href="struct.ApplicationClose.html" title="struct noq_proto::ApplicationClose">Application<wbr>Close</a></dt><dd>Reason given by an application for closing the connection</dd><dt><a class="struct" href="struct.BloomTokenLog.html" title="struct noq_proto::BloomTokenLog">Bloom<wbr>Token<wbr>Log</a></dt><dd>Bloom filter-based <a href="trait.TokenLog.html" title="trait noq_proto::TokenLog"><code>TokenLog</code></a></dd><dt><a class="struct" href="struct.Chunk.html" title="struct noq_proto::Chunk">Chunk</a></dt><dd>A chunk of data from the receive stream</dd><dt><a class="struct" href="struct.Chunks.html" title="struct noq_proto::Chunks">Chunks</a></dt><dd>Chunks returned from <a href="struct.RecvStream.html#method.read" title="method noq_proto::RecvStream::read"><code>RecvStream::read()</code></a>.</dd><dt><a class="struct" href="struct.ClientConfig.html" title="struct noq_proto::ClientConfig">Client<wbr>Config</a></dt><dd>Configuration for outgoing connections</dd><dt><a class="struct" href="struct.ClosedPath.html" title="struct noq_proto::ClosedPath">Closed<wbr>Path</a></dt><dd>Error indicating that a path has not been opened or has already been abandoned</dd><dt><a class="struct" href="struct.ClosedStream.html" title="struct noq_proto::ClosedStream">Closed<wbr>Stream</a></dt><dd>Error indicating that a stream has not been opened or has already been finished or reset</dd><dt><a class="struct" href="struct.Connection.html" title="struct noq_proto::Connection">Connection</a></dt><dd>Protocol state and logic for a single QUIC connection</dd><dt><a class="struct" href="struct.ConnectionClose.html" title="struct noq_proto::ConnectionClose">Connection<wbr>Close</a></dt><dd>Reason given by the transport for closing the connection</dd><dt><a class="struct" href="struct.ConnectionEvent.html" title="struct noq_proto::ConnectionEvent">Connection<wbr>Event</a></dt><dd>Events sent from an Endpoint to a Connection</dd><dt><a class="struct" href="struct.ConnectionHandle.html" title="struct noq_proto::ConnectionHandle">Connection<wbr>Handle</a></dt><dd>Internal identifier for a <code>Connection</code> currently associated with an endpoint</dd><dt><a class="struct" href="struct.ConnectionId.html" title="struct noq_proto::ConnectionId">Connection<wbr>Id</a></dt><dd>Protocol-level identifier for a connection.</dd><dt><a class="struct" href="struct.ConnectionStats.html" title="struct noq_proto::ConnectionStats">Connection<wbr>Stats</a></dt><dd>Connection statistics.</dd><dt><a class="struct" href="struct.Datagram.html" title="struct noq_proto::Datagram">Datagram</a></dt><dd>An unreliable datagram</dd><dt><a class="struct" href="struct.DatagramInfo.html" title="struct noq_proto::DatagramInfo">Datagram<wbr>Info</a></dt><dt><a class="struct" href="struct.Datagrams.html" title="struct noq_proto::Datagrams">Datagrams</a></dt><dd>API to control datagram traffic</dd><dt><a class="struct" href="struct.DecryptedInitial.html" title="struct noq_proto::DecryptedInitial">Decrypted<wbr>Initial</a></dt><dd>Decrypted payload of a QUIC Initial packet</dd><dt><a class="struct" href="struct.Endpoint.html" title="struct noq_proto::Endpoint">Endpoint</a></dt><dd>The main entry point to the library</dd><dt><a class="struct" href="struct.EndpointConfig.html" title="struct noq_proto::EndpointConfig">Endpoint<wbr>Config</a></dt><dd>Global configuration for the endpoint, affecting all connections</dd><dt><a class="struct" href="struct.EndpointEvent.html" title="struct noq_proto::EndpointEvent">Endpoint<wbr>Event</a></dt><dd>Events sent from a Connection to an Endpoint</dd><dt><a class="struct" href="struct.FixedLengthConnectionIdParser.html" title="struct noq_proto::FixedLengthConnectionIdParser">Fixed<wbr>Length<wbr>Connection<wbr>IdParser</a></dt><dd>A <a href="trait.ConnectionIdParser.html" title="trait noq_proto::ConnectionIdParser"><code>ConnectionIdParser</code></a> implementation that assumes the connection ID is of fixed length</dd><dt><a class="struct" href="struct.FourTuple.html" title="struct noq_proto::FourTuple">Four<wbr>Tuple</a></dt><dd>Identifies a network path by the combination of remote and local addresses</dd><dt><a class="struct" href="struct.FrameStats.html" title="struct noq_proto::FrameStats">Frame<wbr>Stats</a></dt><dd>Number of frames transmitted or received of each frame type.</dd><dt><a class="struct" href="struct.HashedConnectionIdGenerator.html" title="struct noq_proto::HashedConnectionIdGenerator">Hashed<wbr>Connection<wbr>IdGenerator</a></dt><dd>Generates 8-byte connection IDs that can be efficiently
|
||
<a href="trait.ConnectionIdGenerator.html#method.validate" title="method noq_proto::ConnectionIdGenerator::validate"><code>validate</code></a>d</dd><dt><a class="struct" href="struct.IdleTimeout.html" title="struct noq_proto::IdleTimeout">Idle<wbr>Timeout</a></dt><dd>Maximum duration of inactivity to accept before timing out the connection</dd><dt><a class="struct" href="struct.Incoming.html" title="struct noq_proto::Incoming">Incoming</a></dt><dd>An incoming connection for which the server has not yet begun its part of the handshake.</dd><dt><a class="struct" href="struct.IncomingAlpns.html" title="struct noq_proto::IncomingAlpns">Incoming<wbr>Alpns</a></dt><dd>Iterator over ALPN protocol names from a TLS ClientHello</dd><dt><a class="struct" href="struct.InvalidCid.html" title="struct noq_proto::InvalidCid">Invalid<wbr>Cid</a></dt><dd>The connection ID was not recognized by the <a href="trait.ConnectionIdGenerator.html" title="trait noq_proto::ConnectionIdGenerator"><code>ConnectionIdGenerator</code></a></dd><dt><a class="struct" href="struct.InvalidFrameId.html" title="struct noq_proto::InvalidFrameId">Invalid<wbr>Frame<wbr>Id</a></dt><dd>Encounter a frame ID that was not valid.</dd><dt><a class="struct" href="struct.MtuDiscoveryConfig.html" title="struct noq_proto::MtuDiscoveryConfig">MtuDiscovery<wbr>Config</a></dt><dd>Parameters governing MTU discovery.</dd><dt><a class="struct" href="struct.MultipathNotNegotiated.html" title="struct noq_proto::MultipathNotNegotiated">Multipath<wbr>NotNegotiated</a></dt><dd>Error when the multipath extension was not negotiated, but attempted to be used.</dd><dt><a class="struct" href="struct.NoneTokenLog.html" title="struct noq_proto::NoneTokenLog">None<wbr>Token<wbr>Log</a></dt><dd>Null implementation of <a href="trait.TokenLog.html" title="trait noq_proto::TokenLog"><code>TokenLog</code></a>, which never accepts tokens</dd><dt><a class="struct" href="struct.NoneTokenStore.html" title="struct noq_proto::NoneTokenStore">None<wbr>Token<wbr>Store</a></dt><dd>Null implementation of <a href="trait.TokenStore.html" title="trait noq_proto::TokenStore"><code>TokenStore</code></a>, which does not store any tokens</dd><dt><a class="struct" href="struct.PartialDecode.html" title="struct noq_proto::PartialDecode">Partial<wbr>Decode</a></dt><dd>Decodes a QUIC packet’s invariant header</dd><dt><a class="struct" href="struct.PathId.html" title="struct noq_proto::PathId">PathId</a></dt><dd>Id representing different paths when using multipath extension</dd><dt><a class="struct" href="struct.PathStats.html" title="struct noq_proto::PathStats">Path<wbr>Stats</a></dt><dd>Statistics related to a transmission path.</dd><dt><a class="struct" href="struct.ProtectedInitialHeader.html" title="struct noq_proto::ProtectedInitialHeader">Protected<wbr>Initial<wbr>Header</a></dt><dd>Header of an Initial packet, before decryption</dd><dt><a class="struct" href="struct.QlogConfig.html" title="struct noq_proto::QlogConfig">Qlog<wbr>Config</a></dt><dd>Configuration for qlog trace logging.</dd><dt><a class="struct" href="struct.QlogFileFactory.html" title="struct noq_proto::QlogFileFactory">Qlog<wbr>File<wbr>Factory</a></dt><dd>Enables writing qlog traces to a directory.</dd><dt><a class="struct" href="struct.RandomConnectionIdGenerator.html" title="struct noq_proto::RandomConnectionIdGenerator">Random<wbr>Connection<wbr>IdGenerator</a></dt><dd>Generates purely random connection IDs of a specified length</dd><dt><a class="struct" href="struct.RecvStream.html" title="struct noq_proto::RecvStream">Recv<wbr>Stream</a></dt><dd>Access to streams</dd><dt><a class="struct" href="struct.RetryError.html" title="struct noq_proto::RetryError">Retry<wbr>Error</a></dt><dd>Error for attempting to retry an <a href="struct.Incoming.html" title="struct noq_proto::Incoming"><code>Incoming</code></a> which already bears a token from a previous retry</dd><dt><a class="struct" href="struct.RttEstimator.html" title="struct noq_proto::RttEstimator">RttEstimator</a></dt><dd>RTT estimation for a particular network path</dd><dt><a class="struct" href="struct.SendStream.html" title="struct noq_proto::SendStream">Send<wbr>Stream</a></dt><dd>Access to streams</dd><dt><a class="struct" href="struct.ServerConfig.html" title="struct noq_proto::ServerConfig">Server<wbr>Config</a></dt><dd>Parameters governing incoming connections</dd><dt><a class="struct" href="struct.ShouldTransmit.html" title="struct noq_proto::ShouldTransmit">Should<wbr>Transmit</a></dt><dd>Indicates whether a frame needs to be transmitted</dd><dt><a class="struct" href="struct.StdSystemTime.html" title="struct noq_proto::StdSystemTime">StdSystem<wbr>Time</a></dt><dd>Default implementation of <a href="trait.TimeSource.html" title="trait noq_proto::TimeSource"><code>TimeSource</code></a></dd><dt><a class="struct" href="struct.StreamId.html" title="struct noq_proto::StreamId">Stream<wbr>Id</a></dt><dd>Identifier for a stream within a particular connection</dd><dt><a class="struct" href="struct.StreamInfo.html" title="struct noq_proto::StreamInfo">Stream<wbr>Info</a></dt><dt><a class="struct" href="struct.Streams.html" title="struct noq_proto::Streams">Streams</a></dt><dd>Access to streams</dd><dt><a class="struct" href="struct.TokenMemoryCache.html" title="struct noq_proto::TokenMemoryCache">Token<wbr>Memory<wbr>Cache</a></dt><dd><code>TokenStore</code> implementation that stores up to <code>N</code> tokens per server name for up to a
|
||
limited number of server names, in-memory</dd><dt><a class="struct" href="struct.TokenReuseError.html" title="struct noq_proto::TokenReuseError">Token<wbr>Reuse<wbr>Error</a></dt><dd>Error for when a validation token may have been reused</dd><dt><a class="struct" href="struct.Transmit.html" title="struct noq_proto::Transmit">Transmit</a></dt><dd>An outgoing packet</dd><dt><a class="struct" href="struct.TransportConfig.html" title="struct noq_proto::TransportConfig">Transport<wbr>Config</a></dt><dd>Parameters governing the core QUIC state machine</dd><dt><a class="struct" href="struct.TransportError.html" title="struct noq_proto::TransportError">Transport<wbr>Error</a></dt><dd>Transport-level errors occur when a peer violates the protocol specification</dd><dt><a class="struct" href="struct.TransportErrorCode.html" title="struct noq_proto::TransportErrorCode">Transport<wbr>Error<wbr>Code</a></dt><dd>Transport-level error code</dd><dt><a class="struct" href="struct.UdpStats.html" title="struct noq_proto::UdpStats">UdpStats</a></dt><dd>Statistics about UDP datagrams transmitted or received on a connection.</dd><dt><a class="struct" href="struct.ValidationTokenConfig.html" title="struct noq_proto::ValidationTokenConfig">Validation<wbr>Token<wbr>Config</a></dt><dd>Configuration for sending and handling validation tokens in incoming connections</dd><dt><a class="struct" href="struct.VarInt.html" title="struct noq_proto::VarInt">VarInt</a></dt><dd>An integer less than 2^62</dd><dt><a class="struct" href="struct.VarIntBoundsExceeded.html" title="struct noq_proto::VarIntBoundsExceeded">VarInt<wbr>Bounds<wbr>Exceeded</a></dt><dd>Error returned when constructing a <code>VarInt</code> from a value >= 2^62</dd></dl><h2 id="enums" class="section-header">Enums<a href="#enums" class="anchor">§</a></h2><dl class="item-table"><dt><a class="enum" href="enum.ClosePathError.html" title="enum noq_proto::ClosePathError">Close<wbr>Path<wbr>Error</a></dt><dd>Errors triggered when abandoning a path</dd><dt><a class="enum" href="enum.ConfigError.html" title="enum noq_proto::ConfigError">Config<wbr>Error</a></dt><dd>Errors in the configuration of an endpoint</dd><dt><a class="enum" href="enum.ConnectError.html" title="enum noq_proto::ConnectError">Connect<wbr>Error</a></dt><dd>Errors in the parameters being used to create a new connection</dd><dt><a class="enum" href="enum.ConnectionError.html" title="enum noq_proto::ConnectionError">Connection<wbr>Error</a></dt><dd>Reasons why a connection might be lost</dd><dt><a class="enum" href="enum.DatagramEvent.html" title="enum noq_proto::DatagramEvent">Datagram<wbr>Event</a></dt><dd>Event resulting from processing a single datagram</dd><dt><a class="enum" href="enum.Dir.html" title="enum noq_proto::Dir">Dir</a></dt><dd>Whether a stream communicates data in both directions or only from the initiator</dd><dt><a class="enum" href="enum.EcnCodepoint.html" title="enum noq_proto::EcnCodepoint">EcnCodepoint</a></dt><dd>Explicit congestion notification codepoint</dd><dt><a class="enum" href="enum.Event.html" title="enum noq_proto::Event">Event</a></dt><dd>Events of interest to the application</dd><dt><a class="enum" href="enum.FinishError.html" title="enum noq_proto::FinishError">Finish<wbr>Error</a></dt><dd>Reasons why attempting to finish a stream might fail</dd><dt><a class="enum" href="enum.FrameType.html" title="enum noq_proto::FrameType">Frame<wbr>Type</a></dt><dt><a class="enum" href="enum.LongType.html" title="enum noq_proto::LongType">Long<wbr>Type</a></dt><dd>Long packet types with uniform header structure</dd><dt><a class="enum" href="enum.MaybeFrame.html" title="enum noq_proto::MaybeFrame">Maybe<wbr>Frame</a></dt><dd>The type used to refer to <a href="enum.FrameType.html" title="enum noq_proto::FrameType"><code>FrameType</code></a>s in closing and transport errors.</dd><dt><a class="enum" href="enum.PacketDecodeError.html" title="enum noq_proto::PacketDecodeError">Packet<wbr>Decode<wbr>Error</a></dt><dd>Packet decode error</dd><dt><a class="enum" href="enum.PathAbandonReason.html" title="enum noq_proto::PathAbandonReason">Path<wbr>Abandon<wbr>Reason</a></dt><dd>Reason for why a path was abandoned.</dd><dt><a class="enum" href="enum.PathError.html" title="enum noq_proto::PathError">Path<wbr>Error</a></dt><dd>Errors that might trigger a path being closed</dd><dt><a class="enum" href="enum.PathEvent.html" title="enum noq_proto::PathEvent">Path<wbr>Event</a></dt><dd>Application events about paths</dd><dt><a class="enum" href="enum.PathStatus.html" title="enum noq_proto::PathStatus">Path<wbr>Status</a></dt><dd>The QUIC-MULTIPATH path status</dd><dt><a class="enum" href="enum.ProtectedHeader.html" title="enum noq_proto::ProtectedHeader">Protected<wbr>Header</a></dt><dd>Plain packet header</dd><dt><a class="enum" href="enum.ReadError.html" title="enum noq_proto::ReadError">Read<wbr>Error</a></dt><dd>Errors triggered when reading from a recv stream</dd><dt><a class="enum" href="enum.ReadableError.html" title="enum noq_proto::ReadableError">Readable<wbr>Error</a></dt><dd>Errors triggered when opening a recv stream for reading</dd><dt><a class="enum" href="enum.SendDatagramError.html" title="enum noq_proto::SendDatagramError">Send<wbr>Datagram<wbr>Error</a></dt><dd>Errors that can arise when sending a datagram</dd><dt><a class="enum" href="enum.SetPathStatusError.html" title="enum noq_proto::SetPathStatusError">SetPath<wbr>Status<wbr>Error</a></dt><dd>Error from setting path status</dd><dt><a class="enum" href="enum.Side.html" title="enum noq_proto::Side">Side</a></dt><dd>Whether an endpoint was the initiator of a connection</dd><dt><a class="enum" href="enum.StreamEvent.html" title="enum noq_proto::StreamEvent">Stream<wbr>Event</a></dt><dd>Application events about streams</dd><dt><a class="enum" href="enum.WriteError.html" title="enum noq_proto::WriteError">Write<wbr>Error</a></dt><dd>Errors triggered while writing to a send stream</dd></dl><h2 id="constants" class="section-header">Constants<a href="#constants" class="anchor">§</a></h2><dl class="item-table"><dt><a class="constant" href="constant.DEFAULT_SUPPORTED_VERSIONS.html" title="constant noq_proto::DEFAULT_SUPPORTED_VERSIONS">DEFAULT_<wbr>SUPPORTED_<wbr>VERSIONS</a></dt><dd>The QUIC protocol version implemented.</dd></dl><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><dl class="item-table"><dt><a class="trait" href="trait.ConnectionIdGenerator.html" title="trait noq_proto::ConnectionIdGenerator">Connection<wbr>IdGenerator</a></dt><dd>Generates connection IDs for incoming connections</dd><dt><a class="trait" href="trait.ConnectionIdParser.html" title="trait noq_proto::ConnectionIdParser">Connection<wbr>IdParser</a></dt><dd>Parse connection id in short header packet</dd><dt><a class="trait" href="trait.NetworkChangeHint.html" title="trait noq_proto::NetworkChangeHint">Network<wbr>Change<wbr>Hint</a></dt><dd>Hints when the caller identifies a network change.</dd><dt><a class="trait" href="trait.QlogFactory.html" title="trait noq_proto::QlogFactory">Qlog<wbr>Factory</a></dt><dd>Constructs a <a href="struct.QlogConfig.html" title="struct noq_proto::QlogConfig"><code>QlogConfig</code></a> for individual connections.</dd><dt><a class="trait" href="trait.TimeSource.html" title="trait noq_proto::TimeSource">Time<wbr>Source</a></dt><dd>Object to get current <a href="https://doc.rust-lang.org/nightly/std/time/struct.SystemTime.html" title="struct std::time::SystemTime"><code>SystemTime</code></a></dd><dt><a class="trait" href="trait.TokenLog.html" title="trait noq_proto::TokenLog">Token<wbr>Log</a></dt><dd>Responsible for limiting clients’ ability to reuse validation tokens</dd><dt><a class="trait" href="trait.TokenStore.html" title="trait noq_proto::TokenStore">Token<wbr>Store</a></dt><dd>Responsible for storing validation tokens received from servers and retrieving them for use in
|
||
subsequent connections</dd></dl></section></div></main></body></html> |