Deploying to gh-pages from @ 89d49c63d270c565bb632f48da13a58160f1d0f5 🚀

This commit is contained in:
realaravinth
2025-10-02 09:13:45 +00:00
parent 0587027d19
commit ebebaa26a9
802 changed files with 32630 additions and 40109 deletions

View File

@@ -1,2 +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="API documentation for the Rust `stats` mod in crate `mcaptcha`."><title>mcaptcha::stats - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-5bc39a1768837dd0.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mcaptcha" data-themes="" data-resource-suffix="" data-rustdoc-version="1.77.2 (25ef9e3d8 2024-04-09)" data-channel="1.77.2" data-search-js="search-dd67cee4cfa65049.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-4c98445ec4002617.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-48f368f3872407c8.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-04d5337699b92874.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.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]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mcaptcha/index.html">mcaptcha</a><span class="version">0.1.0</span></h2></div><h2 class="location"><a href="#">Module stats</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#structs">Structs</a></li><li><a href="#traits">Traits</a></li></ul></section><h2><a href="../index.html">In crate mcaptcha</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../mcaptcha/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Module <a href="../index.html">mcaptcha</a>::<wbr><a class="mod" href="#">stats</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../src/mcaptcha/stats.rs.html#6-119">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><h2 id="structs" class="section-header">Structs<a href="#structs" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="struct" href="struct.CaptchaStats.html" title="struct mcaptcha::stats::CaptchaStats">CaptchaStats</a></div></li><li><div class="item-name"><a class="struct" href="struct.Dummy.html" title="struct mcaptcha::stats::Dummy">Dummy</a></div></li><li><div class="item-name"><a class="struct" href="struct.Real.html" title="struct mcaptcha::stats::Real">Real</a></div></li></ul><h2 id="traits" class="section-header">Traits<a href="#traits" class="anchor">§</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.CloneStats.html" title="trait mcaptcha::stats::CloneStats">CloneStats</a></div><div class="desc docblock-short">Trait to clone MCDatabase</div></li><li><div class="item-name"><a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a></div></li></ul></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="API documentation for the Rust `stats` mod in crate `mcaptcha`."><title>mcaptcha::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" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-aa0817cf.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mcaptcha" data-themes="" data-resource-suffix="" data-rustdoc-version="1.90.0 (1159e78c4 2025-09-14)" data-channel="1.90.0" data-search-js="search-fa3e91e5.js" data-settings-js="settings-5514c975.js" ><script src="../../static.files/storage-68b7e25d.js"></script><script defer src="../sidebar-items.js"></script><script defer src="../../static.files/main-eebb9057.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-32bb7600.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.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]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mcaptcha/index.html">mcaptcha</a><span class="version">0.1.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="#traits" title="Traits">Traits</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="../index.html">In crate mcaptcha</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mcaptcha</a></div><h1>Module <span>stats</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/mcaptcha/stats.rs.html#6-119">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.CaptchaStats.html" title="struct mcaptcha::stats::CaptchaStats">Captcha<wbr>Stats</a></dt><dt><a class="struct" href="struct.Dummy.html" title="struct mcaptcha::stats::Dummy">Dummy</a></dt><dt><a class="struct" href="struct.Real.html" title="struct mcaptcha::stats::Real">Real</a></dt></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.CloneStats.html" title="trait mcaptcha::stats::CloneStats">Clone<wbr>Stats</a></dt><dd>Trait to clone MCDatabase</dd><dt><a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a></dt></dl></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

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +1,7 @@
<!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="Trait to clone MCDatabase"><title>CloneStats in mcaptcha::stats - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-5bc39a1768837dd0.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mcaptcha" data-themes="" data-resource-suffix="" data-rustdoc-version="1.77.2 (25ef9e3d8 2024-04-09)" data-channel="1.77.2" data-search-js="search-dd67cee4cfa65049.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-4c98445ec4002617.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-48f368f3872407c8.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-04d5337699b92874.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.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]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mcaptcha/index.html">mcaptcha</a><span class="version">0.1.0</span></h2></div><h2 class="location"><a href="#">CloneStats</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.clone_stats">clone_stats</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In mcaptcha::stats</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../mcaptcha/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="../index.html">mcaptcha</a>::<wbr><a href="index.html">stats</a>::<wbr><a class="trait" href="#">CloneStats</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../src/mcaptcha/stats.rs.html#28-31">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait CloneStats {
<!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="Trait to clone MCDatabase"><title>CloneStats in mcaptcha::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" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-aa0817cf.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mcaptcha" data-themes="" data-resource-suffix="" data-rustdoc-version="1.90.0 (1159e78c4 2025-09-14)" data-channel="1.90.0" data-search-js="search-fa3e91e5.js" data-settings-js="settings-5514c975.js" ><script src="../../static.files/storage-68b7e25d.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-eebb9057.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-32bb7600.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.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]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mcaptcha/index.html">mcaptcha</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Clone<wbr>Stats</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.clone_stats" title="clone_stats">clone_stats</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In mcaptcha::<wbr>stats</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mcaptcha</a>::<wbr><a href="index.html">stats</a></div><h1>Trait <span class="trait">CloneStats</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/mcaptcha/stats.rs.html#28-31">Source</a> </span></div><pre class="rust item-decl"><code>pub trait CloneStats {
// Required method
fn <a href="#tymethod.clone_stats" class="fn">clone_stats</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a>&gt;;
fn <a href="#tymethod.clone_stats" class="fn">clone_stats</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a>&gt;;
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Trait to clone MCDatabase</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.clone_stats" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#30">source</a><h4 class="code-header">fn <a href="#tymethod.clone_stats" class="fn">clone_stats</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a>&gt;</h4></section></summary><div class="docblock"><p>clone DB</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-CloneStats-for-T" class="impl"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#33-40">source</a><a href="#impl-CloneStats-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.CloneStats.html" title="trait mcaptcha::stats::CloneStats">CloneStats</a> for T<div class="where">where
T: <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a> + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + 'static,</div></h3></section></div><script src="../../trait.impl/mcaptcha/stats/trait.CloneStats.js" async></script></section></div></main></body></html>
</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.clone_stats" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#30">Source</a><h4 class="code-header">fn <a href="#tymethod.clone_stats" class="fn">clone_stats</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a>&gt;</h4></section></summary><div class="docblock"><p>clone DB</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-CloneStats-for-T" class="impl"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#33-40">Source</a><a href="#impl-CloneStats-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="trait.CloneStats.html" title="trait mcaptcha::stats::CloneStats">CloneStats</a> for T<div class="where">where
T: <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a> + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + 'static,</div></h3></section></div><script src="../../trait.impl/mcaptcha/stats/trait.CloneStats.js" async></script></section></div></main></body></html>

View File

@@ -1,80 +1,82 @@
<!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` trait in crate `mcaptcha`."><title>Stats in mcaptcha::stats - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-5bc39a1768837dd0.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mcaptcha" data-themes="" data-resource-suffix="" data-rustdoc-version="1.77.2 (25ef9e3d8 2024-04-09)" data-channel="1.77.2" data-search-js="search-dd67cee4cfa65049.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-4c98445ec4002617.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-48f368f3872407c8.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-04d5337699b92874.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.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]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mcaptcha/index.html">mcaptcha</a><span class="version">0.1.0</span></h2></div><h2 class="location"><a href="#">Stats</a></h2><div class="sidebar-elems"><section><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.fetch">fetch</a></li><li><a href="#tymethod.record_confirm">record_confirm</a></li><li><a href="#tymethod.record_fetch">record_fetch</a></li><li><a href="#tymethod.record_solve">record_solve</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><h2><a href="index.html">In mcaptcha::stats</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../mcaptcha/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Trait <a href="../index.html">mcaptcha</a>::<wbr><a href="index.html">stats</a>::<wbr><a class="trait" href="#">Stats</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../src/mcaptcha/stats.rs.html#13-25">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub trait Stats: <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="trait.CloneStats.html" title="trait mcaptcha::stats::CloneStats">CloneStats</a> {
<!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` trait in crate `mcaptcha`."><title>Stats in mcaptcha::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" crossorigin href="../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../../static.files/rustdoc-aa0817cf.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="mcaptcha" data-themes="" data-resource-suffix="" data-rustdoc-version="1.90.0 (1159e78c4 2025-09-14)" data-channel="1.90.0" data-search-js="search-fa3e91e5.js" data-settings-js="settings-5514c975.js" ><script src="../../static.files/storage-68b7e25d.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-eebb9057.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-32bb7600.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-6580c154.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]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../mcaptcha/index.html">mcaptcha</a><span class="version">0.1.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Stats</a></h2><h3><a href="#required-methods">Required Methods</a></h3><ul class="block"><li><a href="#tymethod.fetch" title="fetch">fetch</a></li><li><a href="#tymethod.record_confirm" title="record_confirm">record_confirm</a></li><li><a href="#tymethod.record_fetch" title="record_fetch">record_fetch</a></li><li><a href="#tymethod.record_solve" title="record_solve">record_solve</a></li></ul><h3><a href="#implementors">Implementors</a></h3></section><div id="rustdoc-modnav"><h2><a href="index.html">In mcaptcha::<wbr>stats</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="../index.html">mcaptcha</a>::<wbr><a href="index.html">stats</a></div><h1>Trait <span class="trait">Stats</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/mcaptcha/stats.rs.html#13-25">Source</a> </span></div><pre class="rust item-decl"><code>pub trait Stats:
<a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>
+ <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>
+ <a class="trait" href="trait.CloneStats.html" title="trait mcaptcha::stats::CloneStats">CloneStats</a> {
// Required methods
fn <a href="#tymethod.record_fetch" class="fn">record_fetch</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
d: &amp;'life1 <a class="struct" href="../data/struct.Data.html" title="struct mcaptcha::data::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
d: &amp;'life1 <a class="struct" href="../struct.Data.html" title="struct mcaptcha::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.record_solve" class="fn">record_solve</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
d: &amp;'life1 <a class="struct" href="../data/struct.Data.html" title="struct mcaptcha::data::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
d: &amp;'life1 <a class="struct" href="../struct.Data.html" title="struct mcaptcha::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.record_confirm" class="fn">record_confirm</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
d: &amp;'life1 <a class="struct" href="../data/struct.Data.html" title="struct mcaptcha::data::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
d: &amp;'life1 <a class="struct" href="../struct.Data.html" title="struct mcaptcha::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait</span>;
<span class="item-spacer"></span> fn <a href="#tymethod.fetch" class="fn">fetch</a>&lt;'life0, 'life1, 'life2, 'life3, 'async_trait&gt;(
&amp;'life0 self,
d: &amp;'life1 <a class="struct" href="../data/struct.Data.html" title="struct mcaptcha::data::Data">Data</a>,
user: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>,
key: &amp;'life3 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="struct" href="struct.CaptchaStats.html" title="struct mcaptcha::stats::CaptchaStats">CaptchaStats</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
d: &amp;'life1 <a class="struct" href="../struct.Data.html" title="struct mcaptcha::Data">Data</a>,
user: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
key: &amp;'life3 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="struct" href="struct.CaptchaStats.html" title="struct mcaptcha::stats::CaptchaStats">CaptchaStats</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;
<span class="where">where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait</span>;
}</code></pre><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.record_fetch" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#15">source</a><h4 class="code-header">fn <a href="#tymethod.record_fetch" class="fn">record_fetch</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
}</code></pre><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.record_fetch" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#15">Source</a><h4 class="code-header">fn <a href="#tymethod.record_fetch" class="fn">record_fetch</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
d: &amp;'life1 <a class="struct" href="../data/struct.Data.html" title="struct mcaptcha::data::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
d: &amp;'life1 <a class="struct" href="../struct.Data.html" title="struct mcaptcha::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class="docblock"><p>record PoWConfig fetches</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.record_solve" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#18">source</a><h4 class="code-header">fn <a href="#tymethod.record_solve" class="fn">record_solve</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.record_solve" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#18">Source</a><h4 class="code-header">fn <a href="#tymethod.record_solve" class="fn">record_solve</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
d: &amp;'life1 <a class="struct" href="../data/struct.Data.html" title="struct mcaptcha::data::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
d: &amp;'life1 <a class="struct" href="../struct.Data.html" title="struct mcaptcha::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class="docblock"><p>record PoWConfig solves</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.record_confirm" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#21">source</a><h4 class="code-header">fn <a href="#tymethod.record_confirm" class="fn">record_confirm</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.record_confirm" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#21">Source</a><h4 class="code-header">fn <a href="#tymethod.record_confirm" class="fn">record_confirm</a>&lt;'life0, 'life1, 'life2, 'async_trait&gt;(
&amp;'life0 self,
d: &amp;'life1 <a class="struct" href="../data/struct.Data.html" title="struct mcaptcha::data::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
d: &amp;'life1 <a class="struct" href="../struct.Data.html" title="struct mcaptcha::Data">Data</a>,
key: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.unit.html">()</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,</div></h4></section></summary><div class="docblock"><p>record PoWConfig confirms</p>
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.fetch" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#24">source</a><h4 class="code-header">fn <a href="#tymethod.fetch" class="fn">fetch</a>&lt;'life0, 'life1, 'life2, 'life3, 'async_trait&gt;(
</div></details><details class="toggle method-toggle" open><summary><section id="tymethod.fetch" class="method"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#24">Source</a><h4 class="code-header">fn <a href="#tymethod.fetch" class="fn">fetch</a>&lt;'life0, 'life1, 'life2, 'life3, 'async_trait&gt;(
&amp;'life0 self,
d: &amp;'life1 <a class="struct" href="../data/struct.Data.html" title="struct mcaptcha::data::Data">Data</a>,
user: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>,
key: &amp;'life3 <a class="primitive" href="https://doc.rust-lang.org/1.77.2/std/primitive.str.html">str</a>
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.77.2/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.2/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="struct" href="struct.CaptchaStats.html" title="struct mcaptcha::stats::CaptchaStats">CaptchaStats</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.77.2/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
d: &amp;'life1 <a class="struct" href="../struct.Data.html" title="struct mcaptcha::Data">Data</a>,
user: &amp;'life2 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
key: &amp;'life3 <a class="primitive" href="https://doc.rust-lang.org/1.90.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.90.0/core/pin/struct.Pin.html" title="struct core::pin::Pin">Pin</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.90.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/future/future/trait.Future.html" title="trait core::future::future::Future">Future</a>&lt;Output = <a class="type" href="../../db_core/errors/type.DBResult.html" title="type db_core::errors::DBResult">DBResult</a>&lt;<a class="struct" href="struct.CaptchaStats.html" title="struct mcaptcha::stats::CaptchaStats">CaptchaStats</a>&gt;&gt; + <a class="trait" href="https://doc.rust-lang.org/1.90.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'async_trait&gt;&gt;<div class="where">where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
'life3: 'async_trait,</div></h4></section></summary><div class="docblock"><p>fetch stats</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-Stats-for-Dummy" class="impl"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#99-119">source</a><a href="#impl-Stats-for-Dummy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a> for <a class="struct" href="struct.Dummy.html" title="struct mcaptcha::stats::Dummy">Dummy</a></h3></section><section id="impl-Stats-for-Real" class="impl"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#60-93">source</a><a href="#impl-Stats-for-Real" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a> for <a class="struct" href="struct.Real.html" title="struct mcaptcha::stats::Real">Real</a></h3></section></div><script src="../../trait.impl/mcaptcha/stats/trait.Stats.js" async></script></section></div></main></body></html>
</div></details></div><h2 id="implementors" class="section-header">Implementors<a href="#implementors" class="anchor">§</a></h2><div id="implementors-list"><section id="impl-Stats-for-Dummy" class="impl"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#99-119">Source</a><a href="#impl-Stats-for-Dummy" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a> for <a class="struct" href="struct.Dummy.html" title="struct mcaptcha::stats::Dummy">Dummy</a></h3></section><section id="impl-Stats-for-Real" class="impl"><a class="src rightside" href="../../src/mcaptcha/stats.rs.html#60-93">Source</a><a href="#impl-Stats-for-Real" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="trait.Stats.html" title="trait mcaptcha::stats::Stats">Stats</a> for <a class="struct" href="struct.Real.html" title="struct mcaptcha::stats::Real">Real</a></h3></section></div><script src="../../trait.impl/mcaptcha/stats/trait.Stats.js" async></script></section></div></main></body></html>