Cleanup old docs

This commit is contained in:
github-actions[bot]
2026-09-14 07:07:30 +00:00
parent 518025ff85
commit 0db3d4f012
908 changed files with 0 additions and 77641 deletions
View File
-1
View File
@@ -1 +0,0 @@
<!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="List of all items in this crate"><title>List of all items in this crate</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="bench" 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="../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 sys"><!--[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="#">All</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h3><a href="#structs">Crate Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li><li><a href="#functions" title="Functions">Functions</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>List of all items</h1><rustdoc-toolbar></rustdoc-toolbar></div><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.Opt.html">Opt</a></li><li><a href="stats/struct.Stats.html">stats::Stats</a></li><li><a href="stats/struct.StreamStats.html">stats::StreamStats</a></li><li><a href="stats/struct.TransferResult.html">stats::TransferResult</a></li></ul><h3 id="enums">Enums</h3><ul class="all-items"><li><a href="enum.CipherSuite.html">CipherSuite</a></li><li><a href="enum.RuntimeType.html">RuntimeType</a></li></ul><h3 id="functions">Functions</h3><ul class="all-items"><li><a href="fn.configure_tracing_subscriber.html">configure_tracing_subscriber</a></li><li><a href="fn.connect_client.html">connect_client</a></li><li><a href="fn.drain_stream.html">drain_stream</a></li><li><a href="fn.rt.html">rt</a></li><li><a href="fn.send_data_on_stream.html">send_data_on_stream</a></li><li><a href="fn.server_endpoint.html">server_endpoint</a></li><li><a href="stats/fn.throughput_bps.html">stats::throughput_bps</a></li><li><a href="fn.transport_config.html">transport_config</a></li></ul></section></div></main></body></html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1 +0,0 @@
<!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="API documentation for the Rust `configure_tracing_subscriber` fn in crate `bench`."><title>configure_tracing_subscriber in bench - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">configure_tracing_subscriber</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bench</a></div><h1>Function <span class="fn">configure_<wbr>tracing_<wbr>subscriber</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/bench/lib.rs.html#23-30">Source</a> </span></div><pre class="rust item-decl"><code>pub fn configure_tracing_subscriber()</code></pre></section></div></main></body></html>
-6
View File
@@ -1,6 +0,0 @@
<!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="Create a client endpoint and client connection"><title>connect_client in bench - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">connect_client</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bench</a></div><h1>Function <span class="fn">connect_<wbr>client</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/bench/lib.rs.html#56-90">Source</a> </span></div><pre class="rust item-decl"><code>pub async fn connect_client(
server_addr: <a class="enum" href="https://doc.rust-lang.org/nightly/core/net/socket_addr/enum.SocketAddr.html" title="enum core::net::socket_addr::SocketAddr">SocketAddr</a>,
server_cert: CertificateDer&lt;'_&gt;,
opt: <a class="struct" href="struct.Opt.html" title="struct bench::Opt">Opt</a>,
) -&gt; <a class="type" href="https://docs.rs/anyhow/1.0.104/anyhow/type.Result.html" title="type anyhow::Result">Result</a>&lt;(<a class="struct" href="../noq/endpoint/struct.Endpoint.html" title="struct noq::endpoint::Endpoint">Endpoint</a>, <a class="struct" href="../noq/connection/struct.Connection.html" title="struct noq::connection::Connection">Connection</a>)&gt;</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Create a client endpoint and client connection</p>
</div></details></section></div></main></body></html>
-4
View File
@@ -1,4 +0,0 @@
<!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="API documentation for the Rust `drain_stream` fn in crate `bench`."><title>drain_stream in bench - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">drain_stream</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bench</a></div><h1>Function <span class="fn">drain_<wbr>stream</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/bench/lib.rs.html#92-120">Source</a> </span></div><pre class="rust item-decl"><code>pub async fn drain_stream(
stream: <a class="struct" href="../noq/recv_stream/struct.RecvStream.html" title="struct noq::recv_stream::RecvStream">RecvStream</a>,
read_unordered: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
) -&gt; <a class="type" href="https://docs.rs/anyhow/1.0.104/anyhow/type.Result.html" title="type anyhow::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</code></pre></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
<!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="API documentation for the Rust `rt` fn in crate `bench`."><title>rt in bench - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">rt</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bench</a></div><h1>Function <span class="fn">rt</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/bench/lib.rs.html#150-169">Source</a> </span></div><pre class="rust item-decl"><code>pub fn rt(runtime_type: <a class="enum" href="enum.RuntimeType.html" title="enum bench::RuntimeType">RuntimeType</a>) -&gt; Runtime</code></pre></section></div></main></body></html>
@@ -1,4 +0,0 @@
<!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="API documentation for the Rust `send_data_on_stream` fn in crate `bench`."><title>send_data_on_stream in bench - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">send_data_on_stream</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bench</a></div><h1>Function <span class="fn">send_<wbr>data_<wbr>on_<wbr>stream</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/bench/lib.rs.html#122-148">Source</a> </span></div><pre class="rust item-decl"><code>pub async fn send_data_on_stream(
stream: &amp;mut <a class="struct" href="../noq/send_stream/struct.SendStream.html" title="struct noq::send_stream::SendStream">SendStream</a>,
stream_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
) -&gt; <a class="type" href="https://docs.rs/anyhow/1.0.104/anyhow/type.Result.html" title="type anyhow::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
@@ -1,7 +0,0 @@
<!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="Creates a server endpoint which runs on the given runtime"><title>server_endpoint in bench - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">server_endpoint</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bench</a></div><h1>Function <span class="fn">server_<wbr>endpoint</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/bench/lib.rs.html#33-53">Source</a> </span></div><pre class="rust item-decl"><code>pub fn server_endpoint(
rt: &amp;Runtime,
cert: CertificateDer&lt;'static&gt;,
key: PrivateKeyDer&lt;'static&gt;,
opt: &amp;<a class="struct" href="struct.Opt.html" title="struct bench::Opt">Opt</a>,
) -&gt; (<a class="enum" href="https://doc.rust-lang.org/nightly/core/net/socket_addr/enum.SocketAddr.html" title="enum core::net::socket_addr::SocketAddr">SocketAddr</a>, <a class="struct" href="../noq/endpoint/struct.Endpoint.html" title="struct noq::endpoint::Endpoint">Endpoint</a>)</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Creates a server endpoint which runs on the given runtime</p>
</div></details></section></div></main></body></html>
@@ -1 +0,0 @@
<!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="API documentation for the Rust `transport_config` fn in crate `bench`."><title>transport_config in bench - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">transport_config</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bench</a></div><h1>Function <span class="fn">transport_<wbr>config</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/bench/lib.rs.html#171-183">Source</a> </span></div><pre class="rust item-decl"><code>pub fn transport_config(opt: &amp;<a class="struct" href="struct.Opt.html" title="struct bench::Opt">Opt</a>) -&gt; <a class="struct" href="../noq_proto/config/transport/struct.TransportConfig.html" title="struct noq_proto::config::transport::TransportConfig">TransportConfig</a></code></pre></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
<!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="API documentation for the Rust `bench` crate."><title>bench - 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="bench" 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 bench</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bench/index.html">bench</a><span class="version">0.2.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="#modules">Crate Items</a></h3><ul class="block"><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="#functions" title="Functions">Functions</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>bench</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/bench/lib.rs.html#1-294">Source</a> </span></div><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="stats/index.html" title="mod bench::stats">stats</a></dt></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.Opt.html" title="struct bench::Opt">Opt</a></dt></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.CipherSuite.html" title="enum bench::CipherSuite">Cipher<wbr>Suite</a></dt><dt><a class="enum" href="enum.RuntimeType.html" title="enum bench::RuntimeType">Runtime<wbr>Type</a></dt></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.configure_tracing_subscriber.html" title="fn bench::configure_tracing_subscriber">configure_<wbr>tracing_<wbr>subscriber</a></dt><dt><a class="fn" href="fn.connect_client.html" title="fn bench::connect_client">connect_<wbr>client</a></dt><dd>Create a client endpoint and client connection</dd><dt><a class="fn" href="fn.drain_stream.html" title="fn bench::drain_stream">drain_<wbr>stream</a></dt><dt><a class="fn" href="fn.rt.html" title="fn bench::rt">rt</a></dt><dt><a class="fn" href="fn.send_data_on_stream.html" title="fn bench::send_data_on_stream">send_<wbr>data_<wbr>on_<wbr>stream</a></dt><dt><a class="fn" href="fn.server_endpoint.html" title="fn bench::server_endpoint">server_<wbr>endpoint</a></dt><dd>Creates a server endpoint which runs on the given runtime</dd><dt><a class="fn" href="fn.transport_config.html" title="fn bench::transport_config">transport_<wbr>config</a></dt></dl></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
window.SIDEBAR_ITEMS = {"enum":["CipherSuite","RuntimeType"],"fn":["configure_tracing_subscriber","connect_client","drain_stream","rt","send_data_on_stream","server_endpoint","transport_config"],"mod":["stats"],"struct":["Opt"]};
@@ -1 +0,0 @@
<!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="API documentation for the Rust `throughput_bps` fn in crate `bench`."><title>throughput_bps in bench::stats - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">throughput_bps</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><div id="rustdoc-modnav"><h2><a href="index.html">In bench::<wbr>stats</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">bench</a>::<wbr><a href="index.html">stats</a></div><h1>Function <span class="fn">throughput_<wbr>bps</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/bench/stats.rs.html#93-95">Source</a> </span></div><pre class="rust item-decl"><code>pub fn throughput_bps(duration: <a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>, size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.f64.html">f64</a></code></pre></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
<!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="API documentation for the Rust `stats` mod in crate `bench`."><title>bench::stats - 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="bench" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[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="#">Module stats</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../bench/index.html">bench</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module stats</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#functions" title="Functions">Functions</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate bench</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">bench</a></div><h1>Module <span>stats</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/bench/stats.rs.html#1-95">Source</a> </span></div><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Stats.html" title="struct bench::stats::Stats">Stats</a></dt><dt><a class="struct" href="struct.StreamStats.html" title="struct bench::stats::StreamStats">Stream<wbr>Stats</a></dt><dt><a class="struct" href="struct.TransferResult.html" title="struct bench::stats::TransferResult">Transfer<wbr>Result</a></dt></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.throughput_bps.html" title="fn bench::stats::throughput_bps">throughput_<wbr>bps</a></dt></dl></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
window.SIDEBAR_ITEMS = {"fn":["throughput_bps"],"struct":["Stats","StreamStats","TransferResult"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
<!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="List of all items in this crate"><title>List of all items in this crate</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="bulk" 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="../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 sys"><!--[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="#">All</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bulk/index.html">bulk</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h3><a href="#structs">Crate Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#functions" title="Functions">Functions</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>List of all items</h1><rustdoc-toolbar></rustdoc-toolbar></div><h3 id="structs">Structs</h3><ul class="all-items"><li><a href="struct.ClientStats.html">ClientStats</a></li></ul><h3 id="functions">Functions</h3><ul class="all-items"><li><a href="fn.client.html">client</a></li><li><a href="fn.handle_client_stream.html">handle_client_stream</a></li><li><a href="fn.main.html">main</a></li><li><a href="fn.server.html">server</a></li></ul></section></div></main></body></html>
-5
View File
@@ -1,5 +0,0 @@
<!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="API documentation for the Rust `client` fn in crate `bulk`."><title>client in bulk - 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="bulk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">client</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bulk/index.html">bulk</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bulk</a></div><h1>Function <span class="fn">client</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/bulk/bulk.rs.html#112-175">Source</a> </span></div><pre class="rust item-decl"><code>pub(crate) async fn client(
server_addr: <a class="enum" href="https://doc.rust-lang.org/nightly/core/net/socket_addr/enum.SocketAddr.html" title="enum core::net::socket_addr::SocketAddr">SocketAddr</a>,
server_cert: CertificateDer&lt;'static&gt;,
opt: <a class="struct" href="../bench/struct.Opt.html" title="struct bench::Opt">Opt</a>,
) -&gt; <a class="type" href="https://docs.rs/anyhow/1.0.104/anyhow/type.Result.html" title="type anyhow::Result">Result</a>&lt;<a class="struct" href="struct.ClientStats.html" title="struct bulk::ClientStats">ClientStats</a>&gt;</code></pre></section></div></main></body></html>
@@ -1,5 +0,0 @@
<!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="API documentation for the Rust `handle_client_stream` fn in crate `bulk`."><title>handle_client_stream in bulk - 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="bulk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">handle_client_stream</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bulk/index.html">bulk</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bulk</a></div><h1>Function <span class="fn">handle_<wbr>client_<wbr>stream</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/bulk/bulk.rs.html#177-198">Source</a> </span></div><pre class="rust item-decl"><code>pub(crate) async fn handle_client_stream(
connection: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;<a class="struct" href="../noq/connection/struct.Connection.html" title="struct noq::connection::Connection">Connection</a>&gt;,
upload_size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
read_unordered: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
) -&gt; <a class="type" href="https://docs.rs/anyhow/1.0.104/anyhow/type.Result.html" title="type anyhow::Result">Result</a>&lt;(<a class="struct" href="../bench/stats/struct.TransferResult.html" title="struct bench::stats::TransferResult">TransferResult</a>, <a class="struct" href="../bench/stats/struct.TransferResult.html" title="struct bench::stats::TransferResult">TransferResult</a>)&gt;</code></pre></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
<!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="API documentation for the Rust `main` fn in crate `bulk`."><title>main in bulk - 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="bulk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">main</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bulk/index.html">bulk</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bulk</a></div><h1>Function <span class="fn">main</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/bulk/bulk.rs.html#19-66">Source</a> </span></div><pre class="rust item-decl"><code>pub(crate) fn main()</code></pre></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
<!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="API documentation for the Rust `server` fn in crate `bulk`."><title>server in bulk - 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="bulk" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc fn"><!--[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="#">server</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bulk/index.html">bulk</a><span class="version">0.2.0</span></h2></div><div class="sidebar-elems"><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"><div class="rustdoc-breadcrumbs"><a href="index.html">bulk</a></div><h1>Function <span class="fn">server</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/bulk/bulk.rs.html#68-110">Source</a> </span></div><pre class="rust item-decl"><code>pub(crate) async fn server(endpoint: <a class="struct" href="../noq/endpoint/struct.Endpoint.html" title="struct noq::endpoint::Endpoint">Endpoint</a>, opt: <a class="struct" href="../bench/struct.Opt.html" title="struct bench::Opt">Opt</a>) -&gt; <a class="type" href="https://docs.rs/anyhow/1.0.104/anyhow/type.Result.html" title="type anyhow::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;</code></pre></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
<!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="API documentation for the Rust `bulk` crate."><title>bulk - 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="bulk" 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 bulk</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../bulk/index.html">bulk</a><span class="version">0.2.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="#structs">Crate Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#functions" title="Functions">Functions</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>bulk</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/bulk/bulk.rs.html#1-219">Source</a> </span></div><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.ClientStats.html" title="struct bulk::ClientStats">Client<wbr>Stats</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt></dl><h2 id="functions" class="section-header">Functions<a href="#functions" class="anchor">§</a></h2><dl class="item-table"><dt><a class="fn" href="fn.client.html" title="fn bulk::client">client</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="fn" href="fn.handle_client_stream.html" title="fn bulk::handle_client_stream">handle_<wbr>client_<wbr>stream</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="fn" href="fn.main.html" title="fn bulk::main">main</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt><dt><a class="fn" href="fn.server.html" title="fn bulk::server">server</a><span title="Restricted Visibility">&nbsp;🔒</span> </dt></dl></section></div></main></body></html>
-1
View File
@@ -1 +0,0 @@
window.SIDEBAR_ITEMS = {"fn":["client","handle_client_stream","main","server"],"struct":["ClientStats"]};
File diff suppressed because one or more lines are too long
-2
View File
@@ -1,2 +0,0 @@
window.ALL_CRATES = ["bench","bulk","noq","noq_perf","noq_proto","noq_udp","perf"];
//{"start":21,"fragment_lengths":[7,7,6,11,12,10,7]}
-1
View File
@@ -1 +0,0 @@
<!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="Documentation for Rustdoc"><title>Help</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_perf" 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="./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 sys"><!--[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="#">All</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="./index.html"><img class="rust-logo" src="./static.files/rust-logo-9a9549ea.svg" alt="logo"></a><h2><a href="./index.html">Rustdoc</a><span class="version">1.92.0-nightly</span></h2></div><div class="version">(b6f0945e4 2025-10-08)</div><h2 class="location">Help</h2><div class="sidebar-elems"></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>Rustdoc help</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section><p>You need to enable JavaScript to use keyboard commands or search.</p><p>For more information, browse the <a href="https://doc.rust-lang.org/nightly/rustdoc/">rustdoc handbook</a>.</p></section></noscript></section></div></main></body></html>
File diff suppressed because one or more lines are too long
-11
View File
@@ -1,11 +0,0 @@
<!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="Logic for controlling the rate at which data is sent"><title>noq::congestion - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[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="#">Module congestion</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module congestion</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#traits" title="Traits">Traits</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate noq</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a></div><h1>Module <span>congestion</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#95">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Logic for controlling the rate at which data is sent</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.Bbr3.html" title="struct noq::congestion::Bbr3">Bbr3</a></dt><dd>Experimental! Use at your own risk.</dd><dt><a class="struct" href="struct.Bbr3Config.html" title="struct noq::congestion::Bbr3Config">Bbr3<wbr>Config</a></dt><dd>Configuration for the <code>Bbr3</code> congestion controller
Different pacing_gains can be set to modify the multiplier used to
increase the sending rates.
Different cwnd_gains can be set to modify the multiplier used to increase
the congestion windows.
All of these parameters are specific to different states of the algorithm: see <code>BbrState</code>
<code>pacing_margin_percent</code> is used to set a margin when calculating the <code>pacing_rate</code> in order
to not send at 100% capacity when calculating pacing.</dd><dt><a class="struct" href="struct.ControllerMetrics.html" title="struct noq::congestion::ControllerMetrics">Controller<wbr>Metrics</a></dt><dd>Common congestion controller metrics used both for logging purposes
but also to alter the pacing of the connection with
<code>pacing_rate</code> and <code>send_quantum</code></dd><dt><a class="struct" href="struct.Cubic.html" title="struct noq::congestion::Cubic">Cubic</a></dt><dd>The RFC8312 congestion controller, as widely used for TCP</dd><dt><a class="struct" href="struct.CubicConfig.html" title="struct noq::congestion::CubicConfig">Cubic<wbr>Config</a></dt><dd>Configuration for the <code>Cubic</code> congestion controller</dd><dt><a class="struct" href="struct.NewReno.html" title="struct noq::congestion::NewReno">NewReno</a></dt><dd>A simple, standard congestion controller</dd><dt><a class="struct" href="struct.NewRenoConfig.html" title="struct noq::congestion::NewRenoConfig">NewReno<wbr>Config</a></dt><dd>Configuration for the <code>NewReno</code> congestion controller</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.Controller.html" title="trait noq::congestion::Controller">Controller</a></dt><dd>Common interface for different congestion controllers</dd><dt><a class="trait" href="trait.ControllerFactory.html" title="trait noq::congestion::ControllerFactory">Controller<wbr>Factory</a></dt><dd>Constructs controllers on demand</dd></dl></section></div></main></body></html>
@@ -1 +0,0 @@
window.SIDEBAR_ITEMS = {"struct":["Bbr3","Bbr3Config","ControllerMetrics","Cubic","CubicConfig","NewReno","NewRenoConfig"],"trait":["Controller","ControllerFactory"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,112 +0,0 @@
<!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="Common interface for different congestion controllers"><title>Controller in noq::congestion - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">Controller</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Controller</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.clone_box" title="clone_box">clone_box</a></li><li><a href="#tymethod.initial_window" title="initial_window">initial_window</a></li><li><a href="#tymethod.into_any" title="into_any">into_any</a></li><li><a href="#tymethod.on_congestion_event" title="on_congestion_event">on_congestion_event</a></li><li><a href="#tymethod.on_mtu_update" title="on_mtu_update">on_mtu_update</a></li><li><a href="#tymethod.window" title="window">window</a></li></ul><h3><a href="#provided-methods">Provided Methods</a></h3><ul class="block"><li><a href="#method.metrics" title="metrics">metrics</a></li><li><a href="#method.on_ack" title="on_ack">on_ack</a></li><li><a href="#method.on_ack_frequency_update" title="on_ack_frequency_update">on_ack_frequency_update</a></li><li><a href="#method.on_cwnd_limited" title="on_cwnd_limited">on_cwnd_limited</a></li><li><a href="#method.on_end_acks" title="on_end_acks">on_end_acks</a></li><li><a href="#method.on_packet_lost" title="on_packet_lost">on_packet_lost</a></li><li><a href="#method.on_packet_sent" title="on_packet_sent">on_packet_sent</a></li><li><a href="#method.on_sent" title="on_sent">on_sent</a></li><li><a href="#method.on_spurious_congestion_event" title="on_spurious_congestion_event">on_spurious_congestion_event</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>congestion</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">congestion</a></div><h1>Trait <span class="trait">Controller</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/congestion.rs.html#17">Source</a> </span></div><pre class="rust item-decl"><code>pub trait Controller:
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> {
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 15 methods</span></summary> // Required methods
fn <a href="#tymethod.on_congestion_event" class="fn">on_congestion_event</a>(
&amp;mut self,
now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
sent: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
is_persistent_congestion: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
is_ecn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
lost_bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
largest_lost_pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
);
<span class="item-spacer"></span> fn <a href="#tymethod.on_mtu_update" class="fn">on_mtu_update</a>(&amp;mut self, new_mtu: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>);
<span class="item-spacer"></span> fn <a href="#tymethod.window" class="fn">window</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.clone_box" class="fn">clone_box</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Controller.html" title="trait noq::congestion::Controller">Controller</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.initial_window" class="fn">initial_window</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.into_any" class="fn">into_any</a>(self: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Self&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>&gt;;
// Provided methods
fn <a href="#method.on_sent" class="fn">on_sent</a>(&amp;mut self, now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>, bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, largest_pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) { ... }
<span class="item-spacer"></span> fn <a href="#method.on_packet_sent" class="fn">on_packet_sent</a>(&amp;mut self, now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>, bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>, pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>) { ... }
<span class="item-spacer"></span> fn <a href="#method.on_cwnd_limited" class="fn">on_cwnd_limited</a>(&amp;mut self) { ... }
<span class="item-spacer"></span> fn <a href="#method.on_ack" class="fn">on_ack</a>(
&amp;mut self,
now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
sent: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
app_limited: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
rtt: &amp;<a class="struct" href="../../noq_proto/connection/paths/struct.RttEstimator.html" title="struct noq_proto::connection::paths::RttEstimator">RttEstimator</a>,
) { ... }
<span class="item-spacer"></span> fn <a href="#method.on_end_acks" class="fn">on_end_acks</a>(
&amp;mut self,
now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
in_flight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
app_limited: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
largest_packet_num_acked: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>&gt;,
) { ... }
<span class="item-spacer"></span> fn <a href="#method.on_packet_lost" class="fn">on_packet_lost</a>(&amp;mut self, lost_bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>, pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>) { ... }
<span class="item-spacer"></span> fn <a href="#method.on_spurious_congestion_event" class="fn">on_spurious_congestion_event</a>(&amp;mut self) { ... }
<span class="item-spacer"></span> fn <a href="#method.on_ack_frequency_update" class="fn">on_ack_frequency_update</a>(
&amp;mut self,
ack_eliciting_threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
requested_max_ack_delay: <a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>,
) { ... }
<span class="item-spacer"></span> fn <a href="#method.metrics" class="fn">metrics</a>(&amp;self) -&gt; <a class="struct" href="struct.ControllerMetrics.html" title="struct noq::congestion::ControllerMetrics">ControllerMetrics</a> { ... }
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Common interface for different congestion controllers</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.on_congestion_event" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#68-76">Source</a><h4 class="code-header">fn <a href="#tymethod.on_congestion_event" class="fn">on_congestion_event</a>(
&amp;mut self,
now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
sent: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
is_persistent_congestion: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
is_ecn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
lost_bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
largest_lost_pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
)</h4></section></summary><div class="docblock"><p>Packets were deemed lost or marked congested</p>
<p><code>in_persistent_congestion</code> indicates whether all packets sent within the persistent
congestion threshold period ending when the most recent packet in this batch was sent were
lost.
<code>lost_bytes</code> indicates how many bytes were lost. This value will be 0 for ECN triggers.
<code>largest_lost_pn</code> indicates the packet number of the packet with the highest packet number
in the congestion event.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.on_mtu_update" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#89">Source</a><h4 class="code-header">fn <a href="#tymethod.on_mtu_update" class="fn">on_mtu_update</a>(&amp;mut self, new_mtu: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>)</h4></section></summary><div class="docblock"><p>The known MTU for the current network path has been updated</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.window" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#109">Source</a><h4 class="code-header">fn <a href="#tymethod.window" class="fn">window</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>Number of ack-eliciting bytes that may be in flight</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.clone_box" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#124">Source</a><h4 class="code-header">fn <a href="#tymethod.clone_box" class="fn">clone_box</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Controller.html" title="trait noq::congestion::Controller">Controller</a>&gt;</h4></section></summary><div class="docblock"><p>Duplicate the controllers state</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.initial_window" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#127">Source</a><h4 class="code-header">fn <a href="#tymethod.initial_window" class="fn">initial_window</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>Initial congestion window</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.into_any" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#130">Source</a><h4 class="code-header">fn <a href="#tymethod.into_any" class="fn">into_any</a>(self: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;Self&gt;) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>&gt;</h4></section></summary><div class="docblock"><p>Returns Self for use in down-casting to extract implementation details</p>
</div></details></div><h2 id="provided-methods" class="section-header">Provided Methods<a href="#provided-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="method.on_sent" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#20">Source</a><h4 class="code-header">fn <a href="#method.on_sent" class="fn">on_sent</a>(&amp;mut self, now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>, bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, largest_pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>One or more packets were just sent</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_packet_sent" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#24">Source</a><h4 class="code-header">fn <a href="#method.on_packet_sent" class="fn">on_packet_sent</a>(&amp;mut self, now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>, bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>, pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>)</h4></section></summary><div class="docblock"><p>One packet was just sent</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_cwnd_limited" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#30">Source</a><h4 class="code-header">fn <a href="#method.on_cwnd_limited" class="fn">on_cwnd_limited</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>The connection had data to send but was blocked by the congestion window</p>
<p>Reports the specs <code>C.is_cwnd_limited</code> signal to the controller: the sender fully utilized
the congestion window at this point in the current round trip.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_ack" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#37-45">Source</a><h4 class="code-header">fn <a href="#method.on_ack" class="fn">on_ack</a>(
&amp;mut self,
now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
sent: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
app_limited: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
rtt: &amp;<a class="struct" href="../../noq_proto/connection/paths/struct.RttEstimator.html" title="struct noq_proto::connection::paths::RttEstimator">RttEstimator</a>,
)</h4></section></summary><div class="docblock"><p>Packet deliveries were confirmed</p>
<p><code>app_limited</code> indicates whether the connection was blocked on outgoing
application data prior to receiving these acknowledgements.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_end_acks" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#51-57">Source</a><h4 class="code-header">fn <a href="#method.on_end_acks" class="fn">on_end_acks</a>(
&amp;mut self,
now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
in_flight: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
app_limited: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
largest_packet_num_acked: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>&gt;,
)</h4></section></summary><div class="docblock"><p>Packets are acked in batches, all with the same <code>now</code> argument. This indicates one of those
batches has completed.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_packet_lost" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#80">Source</a><h4 class="code-header">fn <a href="#method.on_packet_lost" class="fn">on_packet_lost</a>(&amp;mut self, lost_bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>, pn: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>, now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>)</h4></section></summary><div class="docblock"><p>One packet was just lost</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_spurious_congestion_event" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#86">Source</a><h4 class="code-header">fn <a href="#method.on_spurious_congestion_event" class="fn">on_spurious_congestion_event</a>(&amp;mut self)</h4></section></summary><div class="docblock"><p>Packets were incorrectly deemed lost</p>
<p>This function is called when all packets that were deemed lost (for instance because
of packet reordering) are acknowledged after the congestion event was raised.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.on_ack_frequency_update" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#101-105">Source</a><h4 class="code-header">fn <a href="#method.on_ack_frequency_update" class="fn">on_ack_frequency_update</a>(
&amp;mut self,
ack_eliciting_threshold: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
requested_max_ack_delay: <a class="struct" href="https://doc.rust-lang.org/nightly/core/time/struct.Duration.html" title="struct core::time::Duration">Duration</a>,
)</h4></section></summary><div class="docblock"><p>The peers ACK-frequency parameters have changed</p>
<p><code>ack_eliciting_threshold</code> is the number of ack-eliciting packets the peer may receive
before being required to send an immediate ACK (per the QUIC ACK frequency extension).
<code>requested_max_ack_delay</code> is the maximum delay we asked the peer to wait before sending
an ACK when the threshold hasnt been reached.</p>
<p>Controllers can use this to refine estimates that depend on peer ACK behavior (e.g.
BBRs offload budget).</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.metrics" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#114">Source</a><h4 class="code-header">fn <a href="#method.metrics" class="fn">metrics</a>(&amp;self) -&gt; <a class="struct" href="struct.ControllerMetrics.html" title="struct noq::congestion::ControllerMetrics">ControllerMetrics</a></h4></section></summary><div class="docblock"><p>Retrieve implementation-specific metrics used to populate <code>qlog</code> traces when they are
enabled This is also used to alter the pacing of the connection with
<code>pacing_rate</code> and <code>send_quantum</code></p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Controller-for-Bbr3" class="impl"><a class="src rightside" href="../../src/noq_proto/congestion/bbr3/mod.rs.html#1883">Source</a><a href="#impl-Controller-for-Bbr3" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Controller.html" title="trait noq::congestion::Controller">Controller</a> for <a class="struct" href="struct.Bbr3.html" title="struct noq::congestion::Bbr3">Bbr3</a></h3></section><section id="impl-Controller-for-Cubic" class="impl"><a class="src rightside" href="../../src/noq_proto/congestion/cubic.rs.html#104">Source</a><a href="#impl-Controller-for-Cubic" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Controller.html" title="trait noq::congestion::Controller">Controller</a> for <a class="struct" href="struct.Cubic.html" title="struct noq::congestion::Cubic">Cubic</a></h3></section><section id="impl-Controller-for-NewReno" class="impl"><a class="src rightside" href="../../src/noq_proto/congestion/new_reno.rs.html#43">Source</a><a href="#impl-Controller-for-NewReno" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Controller.html" title="trait noq::congestion::Controller">Controller</a> for <a class="struct" href="struct.NewReno.html" title="struct noq::congestion::NewReno">NewReno</a></h3></section></div><script src="../../trait.impl/noq_proto/congestion/trait.Controller.js" data-ignore-extern-crates="noq_proto" async></script></section></div></main></body></html>
@@ -1,10 +0,0 @@
<!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="Constructs controllers on demand"><title>ControllerFactory in noq::congestion - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">ControllerFactory</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Controller<wbr>Factory</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.build" title="build">build</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>congestion</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">congestion</a></div><h1>Trait <span class="trait">Controller<wbr>Factory</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/congestion.rs.html#150">Source</a> </span></div><pre class="rust item-decl"><code>pub trait ControllerFactory {
// Required method
fn <a href="#tymethod.build" class="fn">build</a>(
self: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;Self&gt;,
now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>,
current_mtu: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Controller.html" title="trait noq::congestion::Controller">Controller</a>&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Constructs controllers on demand</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.build" class="method"><a class="src rightside" href="../../src/noq_proto/congestion.rs.html#152">Source</a><h4 class="code-header">fn <a href="#tymethod.build" class="fn">build</a>(self: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;Self&gt;, now: <a class="struct" href="https://doc.rust-lang.org/nightly/std/time/struct.Instant.html" title="struct std::time::Instant">Instant</a>, current_mtu: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u16.html">u16</a>) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Controller.html" title="trait noq::congestion::Controller">Controller</a>&gt;</h4></section></summary><div class="docblock"><p>Construct a fresh <code>Controller</code></p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ControllerFactory-for-Bbr3Config" class="impl"><a class="src rightside" href="../../src/noq_proto/congestion/bbr3/mod.rs.html#2045">Source</a><a href="#impl-ControllerFactory-for-Bbr3Config" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ControllerFactory.html" title="trait noq::congestion::ControllerFactory">ControllerFactory</a> for <a class="struct" href="struct.Bbr3Config.html" title="struct noq::congestion::Bbr3Config">Bbr3Config</a></h3></section><section id="impl-ControllerFactory-for-CubicConfig" class="impl"><a class="src rightside" href="../../src/noq_proto/congestion/cubic.rs.html#305">Source</a><a href="#impl-ControllerFactory-for-CubicConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ControllerFactory.html" title="trait noq::congestion::ControllerFactory">ControllerFactory</a> for <a class="struct" href="struct.CubicConfig.html" title="struct noq::congestion::CubicConfig">CubicConfig</a></h3></section><section id="impl-ControllerFactory-for-NewRenoConfig" class="impl"><a class="src rightside" href="../../src/noq_proto/congestion/new_reno.rs.html#172">Source</a><a href="#impl-ControllerFactory-for-NewRenoConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ControllerFactory.html" title="trait noq::congestion::ControllerFactory">ControllerFactory</a> for <a class="struct" href="struct.NewRenoConfig.html" title="struct noq::congestion::NewRenoConfig">NewRenoConfig</a></h3></section></div><script src="../../trait.impl/noq_proto/congestion/trait.ControllerFactory.js" data-ignore-extern-crates="noq_proto" async></script></section></div></main></body></html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/enum.SendDatagramError.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/enum.SendDatagramError.html">../../noq/enum.SendDatagramError.html</a>...</p>
<script>location.replace("../../noq/enum.SendDatagramError.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.AcceptBi.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.AcceptBi.html">../../noq/struct.AcceptBi.html</a>...</p>
<script>location.replace("../../noq/struct.AcceptBi.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.AcceptUni.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.AcceptUni.html">../../noq/struct.AcceptUni.html</a>...</p>
<script>location.replace("../../noq/struct.AcceptUni.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.Closed.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.Closed.html">../../noq/struct.Closed.html</a>...</p>
<script>location.replace("../../noq/struct.Closed.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.Connecting.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.Connecting.html">../../noq/struct.Connecting.html</a>...</p>
<script>location.replace("../../noq/struct.Connecting.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.Connection.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.Connection.html">../../noq/struct.Connection.html</a>...</p>
<script>location.replace("../../noq/struct.Connection.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.OnClosed.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.OnClosed.html">../../noq/struct.OnClosed.html</a>...</p>
<script>location.replace("../../noq/struct.OnClosed.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.OpenBi.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.OpenBi.html">../../noq/struct.OpenBi.html</a>...</p>
<script>location.replace("../../noq/struct.OpenBi.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.OpenUni.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.OpenUni.html">../../noq/struct.OpenUni.html</a>...</p>
<script>location.replace("../../noq/struct.OpenUni.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.ReadDatagram.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.ReadDatagram.html">../../noq/struct.ReadDatagram.html</a>...</p>
<script>location.replace("../../noq/struct.ReadDatagram.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.ReadManyDatagrams.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.ReadManyDatagrams.html">../../noq/struct.ReadManyDatagrams.html</a>...</p>
<script>location.replace("../../noq/struct.ReadManyDatagrams.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.SendDatagram.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.SendDatagram.html">../../noq/struct.SendDatagram.html</a>...</p>
<script>location.replace("../../noq/struct.SendDatagram.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.WeakConnectionHandle.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.WeakConnectionHandle.html">../../noq/struct.WeakConnectionHandle.html</a>...</p>
<script>location.replace("../../noq/struct.WeakConnectionHandle.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.ZeroRttAccepted.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.ZeroRttAccepted.html">../../noq/struct.ZeroRttAccepted.html</a>...</p>
<script>location.replace("../../noq/struct.ZeroRttAccepted.html" + location.search + location.hash);</script>
</body>
</html>
-8
View File
@@ -1,8 +0,0 @@
<!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="Traits and implementations for the QUIC cryptography protocol"><title>noq::crypto - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[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="#">Module crypto</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module crypto</a></h2><h3><a href="#modules">Module Items</a></h3><ul class="block"><li><a href="#modules" title="Modules">Modules</a></li><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#traits" title="Traits">Traits</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate noq</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a></div><h1>Module <span>crypto</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#65">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Traits and implementations for the QUIC cryptography protocol</p>
<p>The protocol logic in noq is contained in types that abstract over the actual
cryptographic protocol used. This module contains the traits used for this
abstraction layer as well as a single implementation of these traits that uses
<em>ring</em> and rustls to implement the TLS protocol support.</p>
<p>Note that usage of any protocol (version) other than TLS 1.3 does not conform to any
published versions of the specification, and will not be supported in QUIC v1.</p>
</div></details><h2 id="modules" class="section-header">Modules<a href="#modules" class="anchor">§</a></h2><dl class="item-table"><dt><a class="mod" href="rustls/index.html" title="mod noq::crypto::rustls">rustls</a></dt><dd>TLS interface based on rustls</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.CryptoError.html" title="struct noq::crypto::CryptoError">Crypto<wbr>Error</a></dt><dd>Generic crypto errors</dd><dt><a class="struct" href="struct.ExportKeyingMaterialError.html" title="struct noq::crypto::ExportKeyingMaterialError">Export<wbr>Keying<wbr>Material<wbr>Error</a></dt><dd>Error returned by <a href="trait.Session.html#tymethod.export_keying_material" title="method noq::crypto::Session::export_keying_material">Session::export_keying_material</a>.</dd><dt><a class="struct" href="struct.KeyPair.html" title="struct noq::crypto::KeyPair">KeyPair</a></dt><dd>A pair of keys for bidirectional communication</dd><dt><a class="struct" href="struct.Keys.html" title="struct noq::crypto::Keys">Keys</a></dt><dd>A complete set of keys for a certain packet space</dd><dt><a class="struct" href="struct.UnsupportedVersion.html" title="struct noq::crypto::UnsupportedVersion">Unsupported<wbr>Version</a></dt><dd>Error indicating that the specified QUIC version is not supported</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.ClientConfig.html" title="trait noq::crypto::ClientConfig">Client<wbr>Config</a></dt><dd>Client-side configuration for the crypto protocol</dd><dt><a class="trait" href="trait.HandshakeTokenKey.html" title="trait noq::crypto::HandshakeTokenKey">Handshake<wbr>Token<wbr>Key</a></dt><dd>The trait for encrypting tokens that power retry packets and NEW_TOKEN frames.</dd><dt><a class="trait" href="trait.HeaderKey.html" title="trait noq::crypto::HeaderKey">Header<wbr>Key</a></dt><dd>Keys used to protect packet headers</dd><dt><a class="trait" href="trait.HmacKey.html" title="trait noq::crypto::HmacKey">HmacKey</a></dt><dd>A key for signing with HMAC-based algorithms</dd><dt><a class="trait" href="trait.PacketKey.html" title="trait noq::crypto::PacketKey">Packet<wbr>Key</a></dt><dd>Keys used to protect packet payloads</dd><dt><a class="trait" href="trait.ServerConfig.html" title="trait noq::crypto::ServerConfig">Server<wbr>Config</a></dt><dd>Server-side configuration for the crypto protocol</dd><dt><a class="trait" href="trait.Session.html" title="trait noq::crypto::Session">Session</a></dt><dd>A cryptographic session (commonly TLS)</dd></dl></section></div></main></body></html>
File diff suppressed because one or more lines are too long
-2
View File
@@ -1,2 +0,0 @@
<!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="TLS interface based on rustls"><title>noq::crypto::rustls - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-044be391.svg"></head><body class="rustdoc mod"><!--[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="#">Module rustls</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module rustls</a></h2><h3><a href="#structs">Module Items</a></h3><ul class="block"><li><a href="#structs" title="Structs">Structs</a></li><li><a href="#enums" title="Enums">Enums</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="../index.html">In noq::<wbr>crypto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../../index.html">noq</a>::<wbr><a href="../index.html">crypto</a></div><h1>Module <span>rustls</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/crypto.rs.html#27">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>TLS interface based on rustls</p>
</div></details><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><dl class="item-table"><dt><a class="struct" href="struct.HandshakeData.html" title="struct noq::crypto::rustls::HandshakeData">Handshake<wbr>Data</a></dt><dd>Authentication data for (rustls) TLS session</dd><dt><a class="struct" href="struct.NoInitialCipherSuite.html" title="struct noq::crypto::rustls::NoInitialCipherSuite">NoInitial<wbr>Cipher<wbr>Suite</a></dt><dd>The initial cipher suite (AES-128-GCM-SHA256) is not available</dd><dt><a class="struct" href="struct.QuicClientConfig.html" title="struct noq::crypto::rustls::QuicClientConfig">Quic<wbr>Client<wbr>Config</a></dt><dd>A QUIC-compatible TLS client configuration</dd><dt><a class="struct" href="struct.QuicServerConfig.html" title="struct noq::crypto::rustls::QuicServerConfig">Quic<wbr>Server<wbr>Config</a></dt><dd>A QUIC-compatible TLS server configuration</dd><dt><a class="struct" href="struct.TlsSession.html" title="struct noq::crypto::rustls::TlsSession">TlsSession</a></dt><dd>A rustls TLS session</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.Error.html" title="enum noq::crypto::rustls::Error">Error</a></dt><dd>rustls reports protocol errors using this type.</dd></dl></section></div></main></body></html>
@@ -1 +0,0 @@
window.SIDEBAR_ITEMS = {"enum":["Error"],"struct":["HandshakeData","NoInitialCipherSuite","QuicClientConfig","QuicServerConfig","TlsSession"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
-1
View File
@@ -1 +0,0 @@
window.SIDEBAR_ITEMS = {"mod":["rustls"],"struct":["CryptoError","ExportKeyingMaterialError","KeyPair","Keys","UnsupportedVersion"],"trait":["ClientConfig","HandshakeTokenKey","HeaderKey","HmacKey","PacketKey","ServerConfig","Session"]};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,16 +0,0 @@
<!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="Client-side configuration for the crypto protocol"><title>ClientConfig in noq::crypto - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">ClientConfig</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Client<wbr>Config</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.start_session" title="start_session">start_session</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>crypto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">crypto</a></div><h1>Trait <span class="trait">Client<wbr>Config</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/crypto.rs.html#127">Source</a> </span></div><pre class="rust item-decl"><code>pub trait ClientConfig: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
// Required method
fn <a href="#tymethod.start_session" class="fn">start_session</a>(
&amp;self,
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
server_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
params: &amp;<a class="struct" href="../../noq_proto/transport_parameters/struct.TransportParameters.html" title="struct noq_proto::transport_parameters::TransportParameters">TransportParameters</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Session.html" title="trait noq::crypto::Session">Session</a>&gt;, <a class="enum" href="../enum.ConnectError.html" title="enum noq::ConnectError">ConnectError</a>&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Client-side configuration for the crypto protocol</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.start_session" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#129-134">Source</a><h4 class="code-header">fn <a href="#tymethod.start_session" class="fn">start_session</a>(
&amp;self,
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
server_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,
params: &amp;<a class="struct" href="../../noq_proto/transport_parameters/struct.TransportParameters.html" title="struct noq_proto::transport_parameters::TransportParameters">TransportParameters</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Session.html" title="trait noq::crypto::Session">Session</a>&gt;, <a class="enum" href="../enum.ConnectError.html" title="enum noq::ConnectError">ConnectError</a>&gt;</h4></section></summary><div class="docblock"><p>Start a client session with this configuration</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ClientConfig-for-QuicClientConfig" class="impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#370">Source</a><a href="#impl-ClientConfig-for-QuicClientConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ClientConfig.html" title="trait noq::crypto::ClientConfig">ClientConfig</a> for <a class="struct" href="rustls/struct.QuicClientConfig.html" title="struct noq::crypto::rustls::QuicClientConfig">QuicClientConfig</a></h3></section></div><script src="../../trait.impl/noq_proto/crypto/trait.ClientConfig.js" data-ignore-extern-crates="noq_proto" async></script></section></div></main></body></html>
@@ -1,23 +0,0 @@
<!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="The trait for encrypting tokens that power retry packets and NEW_TOKEN frames."><title>HandshakeTokenKey in noq::crypto - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">HandshakeTokenKey</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Handshake<wbr>Token<wbr>Key</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.open" title="open">open</a></li><li><a href="#tymethod.seal" title="seal">seal</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>crypto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">crypto</a></div><h1>Trait <span class="trait">Handshake<wbr>Token<wbr>Key</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/crypto.rs.html#204">Source</a> </span></div><pre class="rust item-decl"><code>pub trait HandshakeTokenKey: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
// Required methods
fn <a href="#tymethod.seal" class="fn">seal</a>(
&amp;self,
token_nonce: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u128.html">u128</a>,
data: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.open" class="fn">open</a>&lt;'a&gt;(
&amp;self,
token_nonce: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u128.html">u128</a>,
data: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&amp;'a [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The trait for encrypting tokens that power retry packets and NEW_TOKEN frames.</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.seal" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#209">Source</a><h4 class="code-header">fn <a href="#tymethod.seal" class="fn">seal</a>(&amp;self, token_nonce: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u128.html">u128</a>, data: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;</h4></section></summary><div class="docblock"><p>Method for sealing a token in-place.</p>
<p>The nonce doesnt need to be attached to the ciphertext,
but the authentication tag is expected to be appended to <code>data</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.open" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#213">Source</a><h4 class="code-header">fn <a href="#tymethod.open" class="fn">open</a>&lt;'a&gt;(
&amp;self,
token_nonce: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u128.html">u128</a>,
data: &amp;'a mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;&amp;'a [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;</h4></section></summary><div class="docblock"><p>Method for opening a sealed message <code>data</code> in-place.</p>
<p>Returns the portion of <code>data</code> that contains the decrypted plaintext.</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../trait.impl/noq_proto/crypto/trait.HandshakeTokenKey.js" async></script></section></div></main></body></html>
@@ -1,10 +0,0 @@
<!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="Keys used to protect packet headers"><title>HeaderKey in noq::crypto - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">HeaderKey</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Header<wbr>Key</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.decrypt" title="decrypt">decrypt</a></li><li><a href="#tymethod.encrypt" title="encrypt">encrypt</a></li><li><a href="#tymethod.sample_size" title="sample_size">sample_size</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-HeaderKey-for-Box%3Cdyn+HeaderProtectionKey%3E" title="Box&#60;dyn HeaderProtectionKey&#62;">Box&#60;dyn HeaderProtectionKey&#62;</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>crypto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">crypto</a></div><h1>Trait <span class="trait">Header<wbr>Key</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/crypto.rs.html#178">Source</a> </span></div><pre class="rust item-decl"><code>pub trait HeaderKey: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
// Required methods
fn <a href="#tymethod.decrypt" class="fn">decrypt</a>(&amp;self, pn_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, packet: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]);
<span class="item-spacer"></span> fn <a href="#tymethod.encrypt" class="fn">encrypt</a>(&amp;self, pn_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, packet: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]);
<span class="item-spacer"></span> fn <a href="#tymethod.sample_size" class="fn">sample_size</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Keys used to protect packet headers</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.decrypt" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#180">Source</a><h4 class="code-header">fn <a href="#tymethod.decrypt" class="fn">decrypt</a>(&amp;self, pn_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, packet: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>])</h4></section></summary><div class="docblock"><p>Decrypt the given packets header</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.encrypt" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#182">Source</a><h4 class="code-header">fn <a href="#tymethod.encrypt" class="fn">encrypt</a>(&amp;self, pn_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, packet: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>])</h4></section></summary><div class="docblock"><p>Encrypt the given packets header</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.sample_size" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#184">Source</a><h4 class="code-header">fn <a href="#tymethod.sample_size" class="fn">sample_size</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>The sample size used for this keys algorithm</p>
</div></details></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-HeaderKey-for-Box%3Cdyn+HeaderProtectionKey%3E" class="impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#225">Source</a><a href="#impl-HeaderKey-for-Box%3Cdyn+HeaderProtectionKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HeaderKey.html" title="trait noq::crypto::HeaderKey">HeaderKey</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn HeaderProtectionKey&gt;</h3></section></summary><div class="impl-items"><section id="method.decrypt" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#226">Source</a><a href="#method.decrypt" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.decrypt" class="fn">decrypt</a>(&amp;self, pn_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, packet: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>])</h4></section><section id="method.encrypt" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#238">Source</a><a href="#method.encrypt" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.encrypt" class="fn">encrypt</a>(&amp;self, pn_offset: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>, packet: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>])</h4></section><section id="method.sample_size" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#250">Source</a><a href="#method.sample_size" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.sample_size" class="fn">sample_size</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../trait.impl/noq_proto/crypto/trait.HeaderKey.js" data-ignore-extern-crates="alloc" async></script></section></div></main></body></html>
-10
View File
@@ -1,10 +0,0 @@
<!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="A key for signing with HMAC-based algorithms"><title>HmacKey in noq::crypto - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">HmacKey</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">HmacKey</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.sign" title="sign">sign</a></li><li><a href="#tymethod.signature_len" title="signature_len">signature_len</a></li><li><a href="#tymethod.verify" title="verify">verify</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-HmacKey-for-Key" title="Key">Key</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>crypto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">crypto</a></div><h1>Trait <span class="trait">HmacKey</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/crypto.rs.html#188">Source</a> </span></div><pre class="rust item-decl"><code>pub trait HmacKey: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
// Required methods
fn <a href="#tymethod.sign" class="fn">sign</a>(&amp;self, data: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], signature_out: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]);
<span class="item-spacer"></span> fn <a href="#tymethod.signature_len" class="fn">signature_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.verify" class="fn">verify</a>(&amp;self, data: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], signature: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A key for signing with HMAC-based algorithms</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.sign" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#190">Source</a><h4 class="code-header">fn <a href="#tymethod.sign" class="fn">sign</a>(&amp;self, data: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], signature_out: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>])</h4></section></summary><div class="docblock"><p>Method for signing a message</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.signature_len" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#192">Source</a><h4 class="code-header">fn <a href="#tymethod.signature_len" class="fn">signature_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Length of <code>sign</code>s output</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.verify" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#194">Source</a><h4 class="code-header">fn <a href="#tymethod.verify" class="fn">verify</a>(&amp;self, data: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], signature: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;</h4></section></summary><div class="docblock"><p>Method for verifying a message</p>
</div></details></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-HmacKey-for-Key" class="impl"><a class="src rightside" href="../../src/noq_proto/crypto/ring_like.rs.html#8">Source</a><a href="#impl-HmacKey-for-Key" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.HmacKey.html" title="trait noq::crypto::HmacKey">HmacKey</a> for Key</h3></section></summary><div class="impl-items"><section id="method.sign" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/ring_like.rs.html#9">Source</a><a href="#method.sign" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.sign" class="fn">sign</a>(&amp;self, data: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], out: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>])</h4></section><section id="method.signature_len" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/ring_like.rs.html#13">Source</a><a href="#method.signature_len" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.signature_len" class="fn">signature_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section><section id="method.verify" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/ring_like.rs.html#17">Source</a><a href="#method.verify" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.verify" class="fn">verify</a>(&amp;self, data: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>], signature: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;</h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../trait.impl/noq_proto/crypto/trait.HmacKey.js" data-ignore-extern-crates="ring" async></script></section></div></main></body></html>
@@ -1,51 +0,0 @@
<!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="Keys used to protect packet payloads"><title>PacketKey in noq::crypto - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">PacketKey</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Packet<wbr>Key</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.confidentiality_limit" title="confidentiality_limit">confidentiality_limit</a></li><li><a href="#tymethod.decrypt" title="decrypt">decrypt</a></li><li><a href="#tymethod.encrypt" title="encrypt">encrypt</a></li><li><a href="#tymethod.integrity_limit" title="integrity_limit">integrity_limit</a></li><li><a href="#tymethod.tag_len" title="tag_len">tag_len</a></li></ul><h3><a href="#foreign-impls">Implementations on Foreign Types</a></h3><ul class="block"><li><a href="#impl-PacketKey-for-Box%3Cdyn+PacketKey%3E" title="Box&#60;dyn PacketKey&#62;">Box&#60;dyn PacketKey&#62;</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>crypto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">crypto</a></div><h1>Trait <span class="trait">Packet<wbr>Key</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/crypto.rs.html#157">Source</a> </span></div><pre class="rust item-decl"><code>pub trait PacketKey: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
// Required methods
fn <a href="#tymethod.encrypt" class="fn">encrypt</a>(
&amp;self,
path_id: <a class="struct" href="../struct.PathId.html" title="struct noq::PathId">PathId</a>,
packet: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
header_len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
);
<span class="item-spacer"></span> fn <a href="#tymethod.decrypt" class="fn">decrypt</a>(
&amp;self,
path_id: <a class="struct" href="../struct.PathId.html" title="struct noq::PathId">PathId</a>,
packet: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
header: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
payload: &amp;mut BytesMut,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.tag_len" class="fn">tag_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.confidentiality_limit" class="fn">confidentiality_limit</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.integrity_limit" class="fn">integrity_limit</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Keys used to protect packet payloads</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.encrypt" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#159">Source</a><h4 class="code-header">fn <a href="#tymethod.encrypt" class="fn">encrypt</a>(
&amp;self,
path_id: <a class="struct" href="../struct.PathId.html" title="struct noq::PathId">PathId</a>,
packet: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
header_len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
)</h4></section></summary><div class="docblock"><p>Encrypt the packet payload with the given packet number</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.decrypt" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#161-167">Source</a><h4 class="code-header">fn <a href="#tymethod.decrypt" class="fn">decrypt</a>(
&amp;self,
path_id: <a class="struct" href="../struct.PathId.html" title="struct noq::PathId">PathId</a>,
packet: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
header: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
payload: &amp;mut BytesMut,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;</h4></section></summary><div class="docblock"><p>Decrypt the packet payload with the given packet number</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.tag_len" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#169">Source</a><h4 class="code-header">fn <a href="#tymethod.tag_len" class="fn">tag_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>The length of the AEAD tag appended to packets on encryption</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.confidentiality_limit" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#171">Source</a><h4 class="code-header">fn <a href="#tymethod.confidentiality_limit" class="fn">confidentiality_limit</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>Maximum number of packets that may be sent using a single key</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.integrity_limit" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#174">Source</a><h4 class="code-header">fn <a href="#tymethod.integrity_limit" class="fn">integrity_limit</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></summary><div class="docblock"><p>Maximum number of incoming packets that may fail decryption before the connection must be
abandoned</p>
</div></details></div><h2 id="foreign-impls" class="section-header">Implementations on Foreign Types<a href="#foreign-impls" class="anchor">§</a></h2><details class="toggle implementors-toggle"><summary><section id="impl-PacketKey-for-Box%3Cdyn+PacketKey%3E" class="impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#635">Source</a><a href="#impl-PacketKey-for-Box%3Cdyn+PacketKey%3E" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.PacketKey.html" title="trait noq::crypto::PacketKey">PacketKey</a> for <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn PacketKey&gt;</h3></section></summary><div class="impl-items"><section id="method.encrypt" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#636">Source</a><a href="#method.encrypt" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.encrypt" class="fn">encrypt</a>(
&amp;self,
path_id: <a class="struct" href="../struct.PathId.html" title="struct noq::PathId">PathId</a>,
packet: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
buf: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
header_len: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>,
)</h4></section><section id="method.decrypt" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#645-651">Source</a><a href="#method.decrypt" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.decrypt" class="fn">decrypt</a>(
&amp;self,
path_id: <a class="struct" href="../struct.PathId.html" title="struct noq::PathId">PathId</a>,
packet: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a>,
header: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
payload: &amp;mut BytesMut,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.CryptoError.html" title="struct noq::crypto::CryptoError">CryptoError</a>&gt;</h4></section><section id="method.tag_len" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#660">Source</a><a href="#method.tag_len" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.tag_len" class="fn">tag_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section><section id="method.confidentiality_limit" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#664">Source</a><a href="#method.confidentiality_limit" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.confidentiality_limit" class="fn">confidentiality_limit</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section><section id="method.integrity_limit" class="method trait-impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#668">Source</a><a href="#method.integrity_limit" class="anchor">§</a><h4 class="code-header">fn <a href="#tymethod.integrity_limit" class="fn">integrity_limit</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u64.html">u64</a></h4></section></div></details><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"></div><script src="../../trait.impl/noq_proto/crypto/trait.PacketKey.js" data-ignore-extern-crates="alloc" async></script></section></div></main></body></html>
@@ -1,39 +0,0 @@
<!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="Server-side configuration for the crypto protocol"><title>ServerConfig in noq::crypto - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">ServerConfig</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Server<wbr>Config</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.initial_keys" title="initial_keys">initial_keys</a></li><li><a href="#tymethod.retry_tag" title="retry_tag">retry_tag</a></li><li><a href="#tymethod.start_session" title="start_session">start_session</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>crypto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">crypto</a></div><h1>Trait <span class="trait">Server<wbr>Config</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/crypto.rs.html#138">Source</a> </span></div><pre class="rust item-decl"><code>pub trait ServerConfig: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> {
// Required methods
fn <a href="#tymethod.initial_keys" class="fn">initial_keys</a>(
&amp;self,
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
dst_cid: <a class="struct" href="../struct.ConnectionId.html" title="struct noq::ConnectionId">ConnectionId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.Keys.html" title="struct noq::crypto::Keys">Keys</a>, <a class="struct" href="struct.UnsupportedVersion.html" title="struct noq::crypto::UnsupportedVersion">UnsupportedVersion</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.retry_tag" class="fn">retry_tag</a>(
&amp;self,
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
orig_dst_cid: <a class="struct" href="../struct.ConnectionId.html" title="struct noq::ConnectionId">ConnectionId</a>,
packet: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">16</a>];
<span class="item-spacer"></span> fn <a href="#tymethod.start_session" class="fn">start_session</a>(
&amp;self,
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
params: &amp;<a class="struct" href="../../noq_proto/transport_parameters/struct.TransportParameters.html" title="struct noq_proto::transport_parameters::TransportParameters">TransportParameters</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Session.html" title="trait noq::crypto::Session">Session</a>&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Server-side configuration for the crypto protocol</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.initial_keys" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#140-141">Source</a><h4 class="code-header">fn <a href="#tymethod.initial_keys" class="fn">initial_keys</a>(
&amp;self,
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
dst_cid: <a class="struct" href="../struct.ConnectionId.html" title="struct noq::ConnectionId">ConnectionId</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.Keys.html" title="struct noq::crypto::Keys">Keys</a>, <a class="struct" href="struct.UnsupportedVersion.html" title="struct noq::crypto::UnsupportedVersion">UnsupportedVersion</a>&gt;</h4></section></summary><div class="docblock"><p>Create the initial set of keys given the clients initial destination ConnectionId</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.retry_tag" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#148">Source</a><h4 class="code-header">fn <a href="#tymethod.retry_tag" class="fn">retry_tag</a>(
&amp;self,
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
orig_dst_cid: <a class="struct" href="../struct.ConnectionId.html" title="struct noq::ConnectionId">ConnectionId</a>,
packet: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.array.html">16</a>]</h4></section></summary><div class="docblock"><p>Generate the integrity tag for a retry packet</p>
<p>Never called if <code>initial_keys</code> rejected <code>version</code>.</p>
<p>See the specification: <a href="https://www.rfc-editor.org/rfc/rfc9001#name-retry-packet-integrity">https://www.rfc-editor.org/rfc/rfc9001#name-retry-packet-integrity</a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.start_session" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#153">Source</a><h4 class="code-header">fn <a href="#tymethod.start_session" class="fn">start_session</a>(
&amp;self,
version: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
params: &amp;<a class="struct" href="../../noq_proto/transport_parameters/struct.TransportParameters.html" title="struct noq_proto::transport_parameters::TransportParameters">TransportParameters</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Session.html" title="trait noq::crypto::Session">Session</a>&gt;</h4></section></summary><div class="docblock"><p>Start a server session with this configuration</p>
<p>Never called if <code>initial_keys</code> rejected <code>version</code>.</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-ServerConfig-for-QuicServerConfig" class="impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#535">Source</a><a href="#impl-ServerConfig-for-QuicServerConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.ServerConfig.html" title="trait noq::crypto::ServerConfig">ServerConfig</a> for <a class="struct" href="rustls/struct.QuicServerConfig.html" title="struct noq::crypto::rustls::QuicServerConfig">QuicServerConfig</a></h3></section></div><script src="../../trait.impl/noq_proto/crypto/trait.ServerConfig.js" data-ignore-extern-crates="noq_proto" async></script></section></div></main></body></html>
-69
View File
@@ -1,69 +0,0 @@
<!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="A cryptographic session (commonly TLS)"><title>Session in noq::crypto - 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" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc trait"><!--[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="#">Session</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../noq/index.html">noq</a><span class="version">1.3.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Session</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.early_crypto" title="early_crypto">early_crypto</a></li><li><a href="#tymethod.early_data_accepted" title="early_data_accepted">early_data_accepted</a></li><li><a href="#tymethod.export_keying_material" title="export_keying_material">export_keying_material</a></li><li><a href="#tymethod.handshake_data" title="handshake_data">handshake_data</a></li><li><a href="#tymethod.initial_keys" title="initial_keys">initial_keys</a></li><li><a href="#tymethod.is_handshaking" title="is_handshaking">is_handshaking</a></li><li><a href="#tymethod.is_valid_retry" title="is_valid_retry">is_valid_retry</a></li><li><a href="#tymethod.next_1rtt_keys" title="next_1rtt_keys">next_1rtt_keys</a></li><li><a href="#tymethod.peer_identity" title="peer_identity">peer_identity</a></li><li><a href="#tymethod.read_handshake" title="read_handshake">read_handshake</a></li><li><a href="#tymethod.transport_parameters" title="transport_parameters">transport_parameters</a></li><li><a href="#tymethod.write_handshake" title="write_handshake">write_handshake</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In noq::<wbr>crypto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">noq</a>::<wbr><a href="index.html">crypto</a></div><h1>Trait <span class="trait">Session</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/crypto.rs.html#30">Source</a> </span></div><pre class="rust item-decl"><code>pub trait Session:
<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
+ <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
+ 'static {
// Required methods
fn <a href="#tymethod.initial_keys" class="fn">initial_keys</a>(&amp;self, dst_cid: <a class="struct" href="../struct.ConnectionId.html" title="struct noq::ConnectionId">ConnectionId</a>, side: <a class="enum" href="../enum.Side.html" title="enum noq::Side">Side</a>) -&gt; <a class="struct" href="struct.Keys.html" title="struct noq::crypto::Keys">Keys</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.handshake_data" class="fn">handshake_data</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>&gt;&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.peer_identity" class="fn">peer_identity</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>&gt;&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.early_crypto" class="fn">early_crypto</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.HeaderKey.html" title="trait noq::crypto::HeaderKey">HeaderKey</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.PacketKey.html" title="trait noq::crypto::PacketKey">PacketKey</a>&gt;)&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.early_data_accepted" class="fn">early_data_accepted</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.is_handshaking" class="fn">is_handshaking</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.read_handshake" class="fn">read_handshake</a>(&amp;mut self, buf: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <a class="struct" href="../../noq_proto/transport_error/struct.Error.html" title="struct noq_proto::transport_error::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.transport_parameters" class="fn">transport_parameters</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../noq_proto/transport_parameters/struct.TransportParameters.html" title="struct noq_proto::transport_parameters::TransportParameters">TransportParameters</a>&gt;, <a class="struct" href="../../noq_proto/transport_error/struct.Error.html" title="struct noq_proto::transport_error::Error">Error</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.write_handshake" class="fn">write_handshake</a>(&amp;mut self, buf: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.Keys.html" title="struct noq::crypto::Keys">Keys</a>&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.next_1rtt_keys" class="fn">next_1rtt_keys</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.KeyPair.html" title="struct noq::crypto::KeyPair">KeyPair</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.PacketKey.html" title="trait noq::crypto::PacketKey">PacketKey</a>&gt;&gt;&gt;;
<span class="item-spacer"></span> fn <a href="#tymethod.is_valid_retry" class="fn">is_valid_retry</a>(
&amp;self,
orig_dst_cid: <a class="struct" href="../struct.ConnectionId.html" title="struct noq::ConnectionId">ConnectionId</a>,
header: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
payload: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>;
<span class="item-spacer"></span> fn <a href="#tymethod.export_keying_material" class="fn">export_keying_material</a>(
&amp;self,
output: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
label: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
context: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.ExportKeyingMaterialError.html" title="struct noq::crypto::ExportKeyingMaterialError">ExportKeyingMaterialError</a>&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A cryptographic session (commonly TLS)</p>
</div></details><h2 id="required-methods" class="section-header">Required Methods<a href="#required-methods" class="anchor">§</a></h2><div class="methods"><details class="toggle method-toggle" open><summary><section id="tymethod.initial_keys" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#32">Source</a><h4 class="code-header">fn <a href="#tymethod.initial_keys" class="fn">initial_keys</a>(&amp;self, dst_cid: <a class="struct" href="../struct.ConnectionId.html" title="struct noq::ConnectionId">ConnectionId</a>, side: <a class="enum" href="../enum.Side.html" title="enum noq::Side">Side</a>) -&gt; <a class="struct" href="struct.Keys.html" title="struct noq::crypto::Keys">Keys</a></h4></section></summary><div class="docblock"><p>Create the initial set of keys given the clients initial destination ConnectionId</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.handshake_data" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#37">Source</a><h4 class="code-header">fn <a href="#tymethod.handshake_data" class="fn">handshake_data</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Get data negotiated during the handshake, if available</p>
<p>Returns <code>None</code> until the connection emits <code>HandshakeDataReady</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.peer_identity" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#40">Source</a><h4 class="code-header">fn <a href="#tymethod.peer_identity" class="fn">peer_identity</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a>&gt;&gt;</h4></section></summary><div class="docblock"><p>Get the peers identity, if available</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.early_crypto" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#49">Source</a><h4 class="code-header">fn <a href="#tymethod.early_crypto" class="fn">early_crypto</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;(<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.HeaderKey.html" title="trait noq::crypto::HeaderKey">HeaderKey</a>&gt;, <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.PacketKey.html" title="trait noq::crypto::PacketKey">PacketKey</a>&gt;)&gt;</h4></section></summary><div class="docblock"><p>Get the 0-RTT keys if available (clients only)</p>
<p>On the client side, this method can be used to see if 0-RTT key material is available
to start sending data before the protocol handshake has completed.</p>
<p>Returns <code>None</code> if the key material is not available. This might happen if you have
not connected to this server before.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.early_data_accepted" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#52">Source</a><h4 class="code-header">fn <a href="#tymethod.early_data_accepted" class="fn">early_data_accepted</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>&gt;</h4></section></summary><div class="docblock"><p>If the 0-RTT-encrypted data has been accepted by the peer</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.is_handshaking" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#55">Source</a><h4 class="code-header">fn <a href="#tymethod.is_handshaking" class="fn">is_handshaking</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns <code>true</code> until the connection is fully established.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.read_handshake" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#65">Source</a><h4 class="code-header">fn <a href="#tymethod.read_handshake" class="fn">read_handshake</a>(&amp;mut self, buf: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>, <a class="struct" href="../../noq_proto/transport_error/struct.Error.html" title="struct noq_proto::transport_error::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>Read bytes of handshake data</p>
<p>This should be called with the contents of <code>CRYPTO</code> frames. If it returns <code>Ok</code>, the
caller should call <code>write_handshake()</code> to check if the crypto protocol has anything
to send to the peer. This method will only return <code>true</code> the first time that
handshake data is available. Future calls will always return false.</p>
<p>On success, returns <code>true</code> iff <code>self.handshake_data()</code> has been populated.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.transport_parameters" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#70">Source</a><h4 class="code-header">fn <a href="#tymethod.transport_parameters" class="fn">transport_parameters</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../noq_proto/transport_parameters/struct.TransportParameters.html" title="struct noq_proto::transport_parameters::TransportParameters">TransportParameters</a>&gt;, <a class="struct" href="../../noq_proto/transport_error/struct.Error.html" title="struct noq_proto::transport_error::Error">Error</a>&gt;</h4></section></summary><div class="docblock"><p>The peers QUIC transport parameters</p>
<p>These are only available after the first flight from the peer has been received.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.write_handshake" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#76">Source</a><h4 class="code-header">fn <a href="#tymethod.write_handshake" class="fn">write_handshake</a>(&amp;mut self, buf: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.Keys.html" title="struct noq::crypto::Keys">Keys</a>&gt;</h4></section></summary><div class="docblock"><p>Writes handshake bytes into the given buffer and optionally returns the negotiated keys</p>
<p>When the handshake proceeds to the next phase, this method will return a new set of
keys to encrypt data with.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.next_1rtt_keys" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#79">Source</a><h4 class="code-header">fn <a href="#tymethod.next_1rtt_keys" class="fn">next_1rtt_keys</a>(&amp;mut self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="struct.KeyPair.html" title="struct noq::crypto::KeyPair">KeyPair</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.PacketKey.html" title="trait noq::crypto::PacketKey">PacketKey</a>&gt;&gt;&gt;</h4></section></summary><div class="docblock"><p>Compute keys for the next key update</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.is_valid_retry" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#84">Source</a><h4 class="code-header">fn <a href="#tymethod.is_valid_retry" class="fn">is_valid_retry</a>(
&amp;self,
orig_dst_cid: <a class="struct" href="../struct.ConnectionId.html" title="struct noq::ConnectionId">ConnectionId</a>,
header: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
payload: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Verify the integrity of a retry packet</p>
<p>See the specification: <a href="https://www.rfc-editor.org/rfc/rfc9001#name-retry-packet-integrity">https://www.rfc-editor.org/rfc/rfc9001#name-retry-packet-integrity</a></p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.export_keying_material" class="method"><a class="src rightside" href="../../src/noq_proto/crypto.rs.html#92-97">Source</a><h4 class="code-header">fn <a href="#tymethod.export_keying_material" class="fn">export_keying_material</a>(
&amp;self,
output: &amp;mut [<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
label: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
context: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],
) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="struct.ExportKeyingMaterialError.html" title="struct noq::crypto::ExportKeyingMaterialError">ExportKeyingMaterialError</a>&gt;</h4></section></summary><div class="docblock"><p>Fill <code>output</code> with <code>output.len()</code> bytes of keying material derived
from the <a href="trait.Session.html" title="trait noq::crypto::Session">Session</a>s secrets, using <code>label</code> and <code>context</code> for domain
separation.</p>
<p>This function will fail, returning <a href="struct.ExportKeyingMaterialError.html" title="struct noq::crypto::ExportKeyingMaterialError">ExportKeyingMaterialError</a>,
if the requested output length is too large.</p>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Session-for-TlsSession" class="impl"><a class="src rightside" href="../../src/noq_proto/crypto/rustls.rs.html#49">Source</a><a href="#impl-Session-for-TlsSession" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Session.html" title="trait noq::crypto::Session">Session</a> for <a class="struct" href="rustls/struct.TlsSession.html" title="struct noq::crypto::rustls::TlsSession">TlsSession</a></h3></section></div><script src="../../trait.impl/noq_proto/crypto/trait.Session.js" data-ignore-extern-crates="noq_proto" async></script></section></div></main></body></html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.Accept.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.Accept.html">../../noq/struct.Accept.html</a>...</p>
<script>location.replace("../../noq/struct.Accept.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.Endpoint.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.Endpoint.html">../../noq/struct.Endpoint.html</a>...</p>
<script>location.replace("../../noq/struct.Endpoint.html" + location.search + location.hash);</script>
</body>
</html>
@@ -1,11 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="refresh" content="0;URL=../../noq/struct.EndpointStats.html">
<title>Redirection</title>
</head>
<body>
<p>Redirecting to <a href="../../noq/struct.EndpointStats.html">../../noq/struct.EndpointStats.html</a>...</p>
<script>location.replace("../../noq/struct.EndpointStats.html" + location.search + location.hash);</script>
</body>
</html>
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More