Files
noq/pr/708/docs/noq_proto/index.html
T

14 lines
24 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="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>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/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>n0s (<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 peers 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 packets 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 &gt;= 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>