Files
noq/pr/796/docs/noq/trait.TokenStore.html

13 lines
6.9 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Responsible for storing validation tokens received from servers and retrieving them for use in subsequent connections"><title>TokenStore in noq - 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="#">TokenStore</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../noq/index.html">noq</a><span class="version">1.2.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Token<wbr>Store</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.insert" title="insert">insert</a></li><li><a href="#tymethod.take" title="take">take</a></li></ul><h3><a href="#implementors">Implementors</a></h3></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>Trait <span class="trait">Token<wbr>Store</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/token.rs.html#79">Source</a> </span></div><pre class="rust item-decl"><code>pub trait TokenStore: <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.insert" class="fn">insert</a>(&amp;self, server_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, token: Bytes);
<span class="item-spacer"></span> fn <a href="#tymethod.take" class="fn">take</a>(&amp;self, server_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Bytes&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Responsible for storing validation tokens received from servers and retrieving them for use in
subsequent connections</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.insert" class="method"><a class="src rightside" href="../src/noq_proto/token.rs.html#83">Source</a><h4 class="code-header">fn <a href="#tymethod.insert" class="fn">insert</a>(&amp;self, server_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>, token: Bytes)</h4></section></summary><div class="docblock"><p>Potentially store a token for later one-time use</p>
<p>Called when a NEW_TOKEN frame is received from the server.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.take" class="method"><a class="src rightside" href="../src/noq_proto/token.rs.html#91">Source</a><h4 class="code-header">fn <a href="#tymethod.take" class="fn">take</a>(&amp;self, server_name: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;Bytes&gt;</h4></section></summary><div class="docblock"><p>Try to find and take a token that was stored with the given server name</p>
<p>The same token must never be returned from <code>take</code> twice, as doing so can be used to
de-anonymize a clients traffic.</p>
<p>Called when trying to connect to a server. It is always ok for this to return <code>None</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-TokenStore-for-NoneTokenStore" class="impl"><a class="src rightside" href="../src/noq_proto/token.rs.html#97">Source</a><a href="#impl-TokenStore-for-NoneTokenStore" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TokenStore.html" title="trait noq::TokenStore">TokenStore</a> for <a class="struct" href="struct.NoneTokenStore.html" title="struct noq::NoneTokenStore">NoneTokenStore</a></h3></section><section id="impl-TokenStore-for-TokenMemoryCache" class="impl"><a class="src rightside" href="../src/noq_proto/token_memory_cache.rs.html#29">Source</a><a href="#impl-TokenStore-for-TokenMemoryCache" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.TokenStore.html" title="trait noq::TokenStore">TokenStore</a> for <a class="struct" href="struct.TokenMemoryCache.html" title="struct noq::TokenMemoryCache">TokenMemoryCache</a></h3></section></div><script src="../trait.impl/noq_proto/token/trait.TokenStore.js" data-ignore-extern-crates="noq_proto" async></script></section></div></main></body></html>