mirror of
https://github.com/n0-computer/noq.git
synced 2026-10-03 21:03:15 +00:00
deploy: de20f3ece198d9600e85655bf86a2d39bd2e86cc
This commit is contained in:
@@ -1 +1 @@
|
||||
<!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="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"><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>
|
||||
<!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="set_up_connection" 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>
|
||||
@@ -1,2 +1,2 @@
|
||||
<!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="iroh NAT Traversal"><title>iroh_quinn_proto::iroh_hp - 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="iroh_quinn_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc 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 iroh_hp</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../iroh_quinn_proto/index.html">iroh_<wbr>quinn_<wbr>proto</a><span class="version">0.14.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module iroh_hp</a></h2><h3><a href="#enums">Module Items</a></h3><ul class="block"><li><a href="#enums" title="Enums">Enums</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate iroh_<wbr>quinn_<wbr>proto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">iroh_quinn_proto</a></div><h1>Module <span>iroh_hp</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/iroh_quinn_proto/iroh_hp.rs.html#1-589">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>iroh NAT Traversal</p>
|
||||
<!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="iroh NAT Traversal"><title>iroh_quinn_proto::iroh_hp - 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="iroh_quinn_proto" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0-nightly (b6f0945e4 2025-10-08)" data-channel="nightly" data-search-js="search-8d3311b9.js" data-stringdex-js="stringdex-828709d0.js" data-settings-js="settings-c38705f0.js" ><script src="../../static.files/storage-e2aeef58.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-044be391.svg"></head><body class="rustdoc 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 iroh_hp</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../iroh_quinn_proto/index.html">iroh_<wbr>quinn_<wbr>proto</a><span class="version">0.14.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Module iroh_hp</a></h2><h3><a href="#enums">Module Items</a></h3><ul class="block"><li><a href="#enums" title="Enums">Enums</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate iroh_<wbr>quinn_<wbr>proto</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">iroh_quinn_proto</a></div><h1>Module <span>iroh_hp</span> <button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../../src/iroh_quinn_proto/iroh_hp.rs.html#1-601">Source</a> </span></div><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>iroh NAT Traversal</p>
|
||||
</div></details><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 iroh_quinn_proto::iroh_hp::Error">Error</a></dt><dd>Errors that the nat traversal state might encounter.</dd><dt><a class="enum" href="enum.Event.html" title="enum iroh_quinn_proto::iroh_hp::Event">Event</a></dt><dd>Event emitted when the client receives ADD_ADDRESS or REMOVE_ADDRESS frames.</dd></dl></section></div></main></body></html>
|
||||
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
-1
File diff suppressed because one or more lines are too long
@@ -1 +1 @@
|
||||
<!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="Settings of Rustdoc"><title>Settings</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"><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">Settings</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 settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable JavaScript be able to update your settings.</section></noscript><script defer src="./static.files/settings-c38705f0.js"></script></section></div></main></body></html>
|
||||
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Settings of Rustdoc"><title>Settings</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="set_up_connection" 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">Settings</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 settings</h1><span class="out-of-band"><a id="back" href="javascript:void(0)" onclick="history.back();">Back</a></span></div><noscript><section>You need to enable JavaScript be able to update your settings.</section></noscript><script defer src="./static.files/settings-c38705f0.js"></script></section></div></main></body></html>
|
||||
@@ -2,7 +2,7 @@
|
||||
<a href=#2 id=2 data-nosnippet>2</a>
|
||||
<a href=#3 id=3 data-nosnippet>3</a></span><span class="kw">use </span>std::{
|
||||
<a href=#4 id=4 data-nosnippet>4</a> collections::hash_map::Entry,
|
||||
<a href=#5 id=5 data-nosnippet>5</a> net::{IpAddr, SocketAddr},
|
||||
<a href=#5 id=5 data-nosnippet>5</a> net::{IpAddr, Ipv4Addr, SocketAddr},
|
||||
<a href=#6 id=6 data-nosnippet>6</a>};
|
||||
<a href=#7 id=7 data-nosnippet>7</a>
|
||||
<a href=#8 id=8 data-nosnippet>8</a><span class="kw">use </span>identity_hash::IntMap;
|
||||
@@ -518,72 +518,84 @@
|
||||
<a href=#518 id=518 data-nosnippet>518</a> IpAddr::V4(addr) <span class="kw">if </span>ipv6 => IpAddr::V6(addr.to_ipv6_mapped()),
|
||||
<a href=#519 id=519 data-nosnippet>519</a> IpAddr::V4(<span class="kw">_</span>) => address,
|
||||
<a href=#520 id=520 data-nosnippet>520</a> IpAddr::V6(<span class="kw">_</span>) <span class="kw">if </span>ipv6 => address,
|
||||
<a href=#521 id=521 data-nosnippet>521</a> IpAddr::V6(addr) => IpAddr::V4(addr.to_ipv4()<span class="question-mark">?</span>),
|
||||
<a href=#522 id=522 data-nosnippet>522</a> };
|
||||
<a href=#523 id=523 data-nosnippet>523</a> <span class="prelude-val">Some</span>(ip)
|
||||
<a href=#524 id=524 data-nosnippet>524</a>}
|
||||
<a href=#525 id=525 data-nosnippet>525</a>
|
||||
<a href=#526 id=526 data-nosnippet>526</a><span class="attr">#[cfg(test)]
|
||||
<a href=#527 id=527 data-nosnippet>527</a></span><span class="kw">mod </span>tests {
|
||||
<a href=#528 id=528 data-nosnippet>528</a> <span class="kw">use super</span>::<span class="kw-2">*</span>;
|
||||
<a href=#529 id=529 data-nosnippet>529</a>
|
||||
<a href=#530 id=530 data-nosnippet>530</a> <span class="attr">#[test]
|
||||
<a href=#531 id=531 data-nosnippet>531</a> </span><span class="kw">fn </span>test_basic_server_state() {
|
||||
<a href=#532 id=532 data-nosnippet>532</a> <span class="kw">let </span><span class="kw-2">mut </span>state = ServerState::new(<span class="number">2</span>, <span class="number">2</span>);
|
||||
<a href=#521 id=521 data-nosnippet>521</a> IpAddr::V6(addr) => {
|
||||
<a href=#522 id=522 data-nosnippet>522</a> <span class="kw">if let </span>[<span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0</span>, <span class="number">0xffff</span>, ab, cd] = addr.segments() {
|
||||
<a href=#523 id=523 data-nosnippet>523</a> <span class="kw">let </span>[a, b] = ab.to_be_bytes();
|
||||
<a href=#524 id=524 data-nosnippet>524</a> <span class="kw">let </span>[c, d] = cd.to_be_bytes();
|
||||
<a href=#525 id=525 data-nosnippet>525</a> IpAddr::V4(Ipv4Addr::new(a, b, c, d))
|
||||
<a href=#526 id=526 data-nosnippet>526</a> } <span class="kw">else </span>{
|
||||
<a href=#527 id=527 data-nosnippet>527</a> <span class="kw">return </span><span class="prelude-val">None</span>;
|
||||
<a href=#528 id=528 data-nosnippet>528</a> }
|
||||
<a href=#529 id=529 data-nosnippet>529</a> }
|
||||
<a href=#530 id=530 data-nosnippet>530</a> };
|
||||
<a href=#531 id=531 data-nosnippet>531</a> <span class="prelude-val">Some</span>(ip)
|
||||
<a href=#532 id=532 data-nosnippet>532</a>}
|
||||
<a href=#533 id=533 data-nosnippet>533</a>
|
||||
<a href=#534 id=534 data-nosnippet>534</a> state
|
||||
<a href=#535 id=535 data-nosnippet>535</a> .handle_reach_out(
|
||||
<a href=#536 id=536 data-nosnippet>536</a> ReachOut {
|
||||
<a href=#537 id=537 data-nosnippet>537</a> round: <span class="number">1u32</span>.into(),
|
||||
<a href=#538 id=538 data-nosnippet>538</a> ip: std::net::Ipv4Addr::LOCALHOST.into(),
|
||||
<a href=#539 id=539 data-nosnippet>539</a> port: <span class="number">1</span>,
|
||||
<a href=#540 id=540 data-nosnippet>540</a> },
|
||||
<a href=#541 id=541 data-nosnippet>541</a> <span class="bool-val">true</span>,
|
||||
<a href=#542 id=542 data-nosnippet>542</a> )
|
||||
<a href=#543 id=543 data-nosnippet>543</a> .unwrap();
|
||||
<a href=#544 id=544 data-nosnippet>544</a>
|
||||
<a href=#545 id=545 data-nosnippet>545</a> state
|
||||
<a href=#546 id=546 data-nosnippet>546</a> .handle_reach_out(
|
||||
<a href=#547 id=547 data-nosnippet>547</a> ReachOut {
|
||||
<a href=#548 id=548 data-nosnippet>548</a> round: <span class="number">1u32</span>.into(),
|
||||
<a href=#549 id=549 data-nosnippet>549</a> ip: <span class="string">"1.1.1.1"</span>.parse().unwrap(), <span class="comment">//std::net::Ipv4Addr::LOCALHOST.into(),
|
||||
<a href=#550 id=550 data-nosnippet>550</a> </span>port: <span class="number">2</span>,
|
||||
<a href=#551 id=551 data-nosnippet>551</a> },
|
||||
<a href=#552 id=552 data-nosnippet>552</a> <span class="bool-val">true</span>,
|
||||
<a href=#553 id=553 data-nosnippet>553</a> )
|
||||
<a href=#554 id=554 data-nosnippet>554</a> .unwrap();
|
||||
<a href=#555 id=555 data-nosnippet>555</a>
|
||||
<a href=#556 id=556 data-nosnippet>556</a> <span class="macro">dbg!</span>(<span class="kw-2">&</span>state);
|
||||
<a href=#557 id=557 data-nosnippet>557</a> <span class="macro">assert_eq!</span>(state.pending_probes.len(), <span class="number">2</span>);
|
||||
<a href=#558 id=558 data-nosnippet>558</a> <span class="macro">assert_eq!</span>(state.active_probes.len(), <span class="number">0</span>);
|
||||
<a href=#559 id=559 data-nosnippet>559</a>
|
||||
<a href=#560 id=560 data-nosnippet>560</a> <span class="kw">let </span>probe = state.next_probe().unwrap();
|
||||
<a href=#561 id=561 data-nosnippet>561</a> probe.finish(<span class="number">1</span>);
|
||||
<a href=#562 id=562 data-nosnippet>562</a> <span class="kw">let </span>probe = state.next_probe().unwrap();
|
||||
<a href=#563 id=563 data-nosnippet>563</a> probe.finish(<span class="number">2</span>);
|
||||
<a href=#564 id=564 data-nosnippet>564</a>
|
||||
<a href=#565 id=565 data-nosnippet>565</a> <span class="macro">assert!</span>(state.next_probe().is_none());
|
||||
<a href=#566 id=566 data-nosnippet>566</a> <span class="macro">assert_eq!</span>(state.pending_probes.len(), <span class="number">0</span>);
|
||||
<a href=#567 id=567 data-nosnippet>567</a> <span class="macro">assert_eq!</span>(state.active_probes.len(), <span class="number">2</span>);
|
||||
<a href=#568 id=568 data-nosnippet>568</a> }
|
||||
<a href=#569 id=569 data-nosnippet>569</a>
|
||||
<a href=#570 id=570 data-nosnippet>570</a> <span class="attr">#[test]
|
||||
<a href=#571 id=571 data-nosnippet>571</a> </span><span class="kw">fn </span>test_map_to_local_socket() {
|
||||
<a href=#572 id=572 data-nosnippet>572</a> <span class="macro">assert_eq!</span>(
|
||||
<a href=#573 id=573 data-nosnippet>573</a> map_to_local_socket_family(<span class="string">"1.1.1.1"</span>.parse().unwrap(), <span class="bool-val">false</span>),
|
||||
<a href=#574 id=574 data-nosnippet>574</a> <span class="prelude-val">Some</span>(<span class="string">"1.1.1.1"</span>.parse().unwrap())
|
||||
<a href=#575 id=575 data-nosnippet>575</a> );
|
||||
<a href=#576 id=576 data-nosnippet>576</a> <span class="macro">assert_eq!</span>(
|
||||
<a href=#577 id=577 data-nosnippet>577</a> map_to_local_socket_family(<span class="string">"1.1.1.1"</span>.parse().unwrap(), <span class="bool-val">true</span>),
|
||||
<a href=#578 id=578 data-nosnippet>578</a> <span class="prelude-val">Some</span>(<span class="string">"::ffff:1.1.1.1"</span>.parse().unwrap())
|
||||
<a href=#579 id=579 data-nosnippet>579</a> );
|
||||
<a href=#534 id=534 data-nosnippet>534</a><span class="attr">#[cfg(test)]
|
||||
<a href=#535 id=535 data-nosnippet>535</a></span><span class="kw">mod </span>tests {
|
||||
<a href=#536 id=536 data-nosnippet>536</a> <span class="kw">use super</span>::<span class="kw-2">*</span>;
|
||||
<a href=#537 id=537 data-nosnippet>537</a>
|
||||
<a href=#538 id=538 data-nosnippet>538</a> <span class="attr">#[test]
|
||||
<a href=#539 id=539 data-nosnippet>539</a> </span><span class="kw">fn </span>test_basic_server_state() {
|
||||
<a href=#540 id=540 data-nosnippet>540</a> <span class="kw">let </span><span class="kw-2">mut </span>state = ServerState::new(<span class="number">2</span>, <span class="number">2</span>);
|
||||
<a href=#541 id=541 data-nosnippet>541</a>
|
||||
<a href=#542 id=542 data-nosnippet>542</a> state
|
||||
<a href=#543 id=543 data-nosnippet>543</a> .handle_reach_out(
|
||||
<a href=#544 id=544 data-nosnippet>544</a> ReachOut {
|
||||
<a href=#545 id=545 data-nosnippet>545</a> round: <span class="number">1u32</span>.into(),
|
||||
<a href=#546 id=546 data-nosnippet>546</a> ip: std::net::Ipv4Addr::LOCALHOST.into(),
|
||||
<a href=#547 id=547 data-nosnippet>547</a> port: <span class="number">1</span>,
|
||||
<a href=#548 id=548 data-nosnippet>548</a> },
|
||||
<a href=#549 id=549 data-nosnippet>549</a> <span class="bool-val">true</span>,
|
||||
<a href=#550 id=550 data-nosnippet>550</a> )
|
||||
<a href=#551 id=551 data-nosnippet>551</a> .unwrap();
|
||||
<a href=#552 id=552 data-nosnippet>552</a>
|
||||
<a href=#553 id=553 data-nosnippet>553</a> state
|
||||
<a href=#554 id=554 data-nosnippet>554</a> .handle_reach_out(
|
||||
<a href=#555 id=555 data-nosnippet>555</a> ReachOut {
|
||||
<a href=#556 id=556 data-nosnippet>556</a> round: <span class="number">1u32</span>.into(),
|
||||
<a href=#557 id=557 data-nosnippet>557</a> ip: <span class="string">"1.1.1.1"</span>.parse().unwrap(), <span class="comment">//std::net::Ipv4Addr::LOCALHOST.into(),
|
||||
<a href=#558 id=558 data-nosnippet>558</a> </span>port: <span class="number">2</span>,
|
||||
<a href=#559 id=559 data-nosnippet>559</a> },
|
||||
<a href=#560 id=560 data-nosnippet>560</a> <span class="bool-val">true</span>,
|
||||
<a href=#561 id=561 data-nosnippet>561</a> )
|
||||
<a href=#562 id=562 data-nosnippet>562</a> .unwrap();
|
||||
<a href=#563 id=563 data-nosnippet>563</a>
|
||||
<a href=#564 id=564 data-nosnippet>564</a> <span class="macro">dbg!</span>(<span class="kw-2">&</span>state);
|
||||
<a href=#565 id=565 data-nosnippet>565</a> <span class="macro">assert_eq!</span>(state.pending_probes.len(), <span class="number">2</span>);
|
||||
<a href=#566 id=566 data-nosnippet>566</a> <span class="macro">assert_eq!</span>(state.active_probes.len(), <span class="number">0</span>);
|
||||
<a href=#567 id=567 data-nosnippet>567</a>
|
||||
<a href=#568 id=568 data-nosnippet>568</a> <span class="kw">let </span>probe = state.next_probe().unwrap();
|
||||
<a href=#569 id=569 data-nosnippet>569</a> probe.finish(<span class="number">1</span>);
|
||||
<a href=#570 id=570 data-nosnippet>570</a> <span class="kw">let </span>probe = state.next_probe().unwrap();
|
||||
<a href=#571 id=571 data-nosnippet>571</a> probe.finish(<span class="number">2</span>);
|
||||
<a href=#572 id=572 data-nosnippet>572</a>
|
||||
<a href=#573 id=573 data-nosnippet>573</a> <span class="macro">assert!</span>(state.next_probe().is_none());
|
||||
<a href=#574 id=574 data-nosnippet>574</a> <span class="macro">assert_eq!</span>(state.pending_probes.len(), <span class="number">0</span>);
|
||||
<a href=#575 id=575 data-nosnippet>575</a> <span class="macro">assert_eq!</span>(state.active_probes.len(), <span class="number">2</span>);
|
||||
<a href=#576 id=576 data-nosnippet>576</a> }
|
||||
<a href=#577 id=577 data-nosnippet>577</a>
|
||||
<a href=#578 id=578 data-nosnippet>578</a> <span class="attr">#[test]
|
||||
<a href=#579 id=579 data-nosnippet>579</a> </span><span class="kw">fn </span>test_map_to_local_socket() {
|
||||
<a href=#580 id=580 data-nosnippet>580</a> <span class="macro">assert_eq!</span>(
|
||||
<a href=#581 id=581 data-nosnippet>581</a> map_to_local_socket_family(<span class="string">"::1"</span>.parse().unwrap(), <span class="bool-val">true</span>),
|
||||
<a href=#582 id=582 data-nosnippet>582</a> <span class="prelude-val">Some</span>(<span class="string">"::1"</span>.parse().unwrap())
|
||||
<a href=#581 id=581 data-nosnippet>581</a> map_to_local_socket_family(<span class="string">"1.1.1.1"</span>.parse().unwrap(), <span class="bool-val">false</span>),
|
||||
<a href=#582 id=582 data-nosnippet>582</a> <span class="prelude-val">Some</span>(<span class="string">"1.1.1.1"</span>.parse().unwrap())
|
||||
<a href=#583 id=583 data-nosnippet>583</a> );
|
||||
<a href=#584 id=584 data-nosnippet>584</a> <span class="macro">assert_eq!</span>(
|
||||
<a href=#585 id=585 data-nosnippet>585</a> map_to_local_socket_family(<span class="string">"::1"</span>.parse().unwrap(), <span class="bool-val">false</span>),
|
||||
<a href=#586 id=586 data-nosnippet>586</a> <span class="prelude-val">None
|
||||
<a href=#587 id=587 data-nosnippet>587</a> </span>);
|
||||
<a href=#588 id=588 data-nosnippet>588</a> }
|
||||
<a href=#589 id=589 data-nosnippet>589</a>}</code></pre></div></section></main></body></html>
|
||||
<a href=#585 id=585 data-nosnippet>585</a> map_to_local_socket_family(<span class="string">"1.1.1.1"</span>.parse().unwrap(), <span class="bool-val">true</span>),
|
||||
<a href=#586 id=586 data-nosnippet>586</a> <span class="prelude-val">Some</span>(<span class="string">"::ffff:1.1.1.1"</span>.parse().unwrap())
|
||||
<a href=#587 id=587 data-nosnippet>587</a> );
|
||||
<a href=#588 id=588 data-nosnippet>588</a> <span class="macro">assert_eq!</span>(
|
||||
<a href=#589 id=589 data-nosnippet>589</a> map_to_local_socket_family(<span class="string">"::1"</span>.parse().unwrap(), <span class="bool-val">true</span>),
|
||||
<a href=#590 id=590 data-nosnippet>590</a> <span class="prelude-val">Some</span>(<span class="string">"::1"</span>.parse().unwrap())
|
||||
<a href=#591 id=591 data-nosnippet>591</a> );
|
||||
<a href=#592 id=592 data-nosnippet>592</a> <span class="macro">assert_eq!</span>(
|
||||
<a href=#593 id=593 data-nosnippet>593</a> map_to_local_socket_family(<span class="string">"::1"</span>.parse().unwrap(), <span class="bool-val">false</span>),
|
||||
<a href=#594 id=594 data-nosnippet>594</a> <span class="prelude-val">None
|
||||
<a href=#595 id=595 data-nosnippet>595</a> </span>);
|
||||
<a href=#596 id=596 data-nosnippet>596</a> <span class="macro">assert_eq!</span>(
|
||||
<a href=#597 id=597 data-nosnippet>597</a> map_to_local_socket_family(<span class="string">"::ffff:1.1.1.1"</span>.parse().unwrap(), <span class="bool-val">false</span>),
|
||||
<a href=#598 id=598 data-nosnippet>598</a> <span class="prelude-val">Some</span>(<span class="string">"1.1.1.1"</span>.parse().unwrap())
|
||||
<a href=#599 id=599 data-nosnippet>599</a> )
|
||||
<a href=#600 id=600 data-nosnippet>600</a> }
|
||||
<a href=#601 id=601 data-nosnippet>601</a>}</code></pre></div></section></main></body></html>
|
||||
Reference in New Issue
Block a user