Deploying to gh-pages from @ e67b7d06daad63c24c51ea7d5f757d9f26636550 🚀
This commit is contained in:
parent
3f150bf922
commit
a81ec53c96
50 changed files with 823 additions and 33 deletions
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,3 +1,3 @@
|
|||
(function() {var implementors = {
|
||||
"mcaptcha":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.DefaultDifficultyStrategy.html\" title=\"struct mcaptcha::settings::DefaultDifficultyStrategy\">DefaultDifficultyStrategy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Server.html\" title=\"struct mcaptcha::settings::Server\">Server</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Captcha.html\" title=\"struct mcaptcha::settings::Captcha\">Captcha</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Smtp.html\" title=\"struct mcaptcha::settings::Smtp\">Smtp</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"mcaptcha/settings/enum.DBType.html\" title=\"enum mcaptcha::settings::DBType\">DBType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Redis.html\" title=\"struct mcaptcha::settings::Redis\">Redis</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/api/v1/survey/struct.Page.html\" title=\"struct mcaptcha::api::v1::survey::Page\">Page</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Survey.html\" title=\"struct mcaptcha::settings::Survey\">Survey</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Database.html\" title=\"struct mcaptcha::settings::Database\">Database</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Settings.html\" title=\"struct mcaptcha::settings::Settings\">Settings</a>"]]
|
||||
"mcaptcha":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.DefaultDifficultyStrategy.html\" title=\"struct mcaptcha::settings::DefaultDifficultyStrategy\">DefaultDifficultyStrategy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Server.html\" title=\"struct mcaptcha::settings::Server\">Server</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Captcha.html\" title=\"struct mcaptcha::settings::Captcha\">Captcha</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Smtp.html\" title=\"struct mcaptcha::settings::Smtp\">Smtp</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"enum\" href=\"mcaptcha/settings/enum.DBType.html\" title=\"enum mcaptcha::settings::DBType\">DBType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/api/v1/stats/routes/struct.Stats.html\" title=\"struct mcaptcha::api::v1::stats::routes::Stats\">Stats</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Redis.html\" title=\"struct mcaptcha::settings::Redis\">Redis</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/api/v1/survey/struct.Page.html\" title=\"struct mcaptcha::api::v1::survey::Page\">Page</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Survey.html\" title=\"struct mcaptcha::settings::Survey\">Survey</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Database.html\" title=\"struct mcaptcha::settings::Database\">Database</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/cmp/trait.Eq.html\" title=\"trait core::cmp::Eq\">Eq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Settings.html\" title=\"struct mcaptcha::settings::Settings\">Settings</a>"]]
|
||||
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,4 +1,4 @@
|
|||
(function() {var implementors = {
|
||||
"db_core":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"db_core/errors/enum.DBError.html\" title=\"enum db_core::errors::DBError\">DBError</a>"]],
|
||||
"mcaptcha":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/errors/enum.ServiceError.html\" title=\"enum mcaptcha::errors::ServiceError\">ServiceError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/meta/enum.HealthBuilderError.html\" title=\"enum mcaptcha::api::v1::meta::HealthBuilderError\">HealthBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/errors/enum.PageError.html\" title=\"enum mcaptcha::errors::PageError\">PageError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"mcaptcha/errors/struct.DBErrorWrapper.html\" title=\"struct mcaptcha::errors::DBErrorWrapper\">DBErrorWrapper</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"mcaptcha/errors/struct.SmtpErrorWrapper.html\" title=\"struct mcaptcha::errors::SmtpErrorWrapper\">SmtpErrorWrapper</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html\" title=\"enum mcaptcha::api::v1::meta::BuildDetailsBuilderError\">BuildDetailsBuilderError</a>"]]
|
||||
"mcaptcha":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/stats/enum.PercentileRespBuilderError.html\" title=\"enum mcaptcha::api::v1::stats::PercentileRespBuilderError\">PercentileRespBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/errors/enum.ServiceError.html\" title=\"enum mcaptcha::errors::ServiceError\">ServiceError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/meta/enum.HealthBuilderError.html\" title=\"enum mcaptcha::api::v1::meta::HealthBuilderError\">HealthBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/errors/enum.PageError.html\" title=\"enum mcaptcha::errors::PageError\">PageError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/stats/enum.BuildDetailsBuilderError.html\" title=\"enum mcaptcha::api::v1::stats::BuildDetailsBuilderError\">BuildDetailsBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/stats/enum.PercentileReqBuilderError.html\" title=\"enum mcaptcha::api::v1::stats::PercentileReqBuilderError\">PercentileReqBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"mcaptcha/errors/struct.DBErrorWrapper.html\" title=\"struct mcaptcha::errors::DBErrorWrapper\">DBErrorWrapper</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"struct\" href=\"mcaptcha/errors/struct.SmtpErrorWrapper.html\" title=\"struct mcaptcha::errors::SmtpErrorWrapper\">SmtpErrorWrapper</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/error/trait.Error.html\" title=\"trait core::error::Error\">Error</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html\" title=\"enum mcaptcha::api::v1::meta::BuildDetailsBuilderError\">BuildDetailsBuilderError</a>"]]
|
||||
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
File diff suppressed because one or more lines are too long
|
@ -1,4 +1,4 @@
|
|||
(function() {var implementors = {
|
||||
"db_core":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"db_core/errors/enum.DBError.html\" title=\"enum db_core::errors::DBError\">DBError</a>"]],
|
||||
"mcaptcha":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/settings/enum.DBType.html\" title=\"enum mcaptcha::settings::DBType\">DBType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html\" title=\"enum mcaptcha::api::v1::meta::BuildDetailsBuilderError\">BuildDetailsBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/errors/enum.PageError.html\" title=\"enum mcaptcha::errors::PageError\">PageError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/errors/enum.ServiceError.html\" title=\"enum mcaptcha::errors::ServiceError\">ServiceError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"mcaptcha/errors/struct.SmtpErrorWrapper.html\" title=\"struct mcaptcha::errors::SmtpErrorWrapper\">SmtpErrorWrapper</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"mcaptcha/errors/struct.DBErrorWrapper.html\" title=\"struct mcaptcha::errors::DBErrorWrapper\">DBErrorWrapper</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/meta/enum.HealthBuilderError.html\" title=\"enum mcaptcha::api::v1::meta::HealthBuilderError\">HealthBuilderError</a>"]]
|
||||
"mcaptcha":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/settings/enum.DBType.html\" title=\"enum mcaptcha::settings::DBType\">DBType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/stats/enum.PercentileRespBuilderError.html\" title=\"enum mcaptcha::api::v1::stats::PercentileRespBuilderError\">PercentileRespBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html\" title=\"enum mcaptcha::api::v1::meta::BuildDetailsBuilderError\">BuildDetailsBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/stats/enum.PercentileReqBuilderError.html\" title=\"enum mcaptcha::api::v1::stats::PercentileReqBuilderError\">PercentileReqBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/errors/enum.PageError.html\" title=\"enum mcaptcha::errors::PageError\">PageError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/errors/enum.ServiceError.html\" title=\"enum mcaptcha::errors::ServiceError\">ServiceError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"mcaptcha/errors/struct.SmtpErrorWrapper.html\" title=\"struct mcaptcha::errors::SmtpErrorWrapper\">SmtpErrorWrapper</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"struct\" href=\"mcaptcha/errors/struct.DBErrorWrapper.html\" title=\"struct mcaptcha::errors::DBErrorWrapper\">DBErrorWrapper</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/meta/enum.HealthBuilderError.html\" title=\"enum mcaptcha::api::v1::meta::HealthBuilderError\">HealthBuilderError</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/fmt/trait.Display.html\" title=\"trait core::fmt::Display\">Display</a> for <a class=\"enum\" href=\"mcaptcha/api/v1/stats/enum.BuildDetailsBuilderError.html\" title=\"enum mcaptcha::api::v1::stats::BuildDetailsBuilderError\">BuildDetailsBuilderError</a>"]]
|
||||
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,3 +1,3 @@
|
|||
(function() {var implementors = {
|
||||
"mcaptcha":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Survey.html\" title=\"struct mcaptcha::settings::Survey\">Survey</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.DefaultDifficultyStrategy.html\" title=\"struct mcaptcha::settings::DefaultDifficultyStrategy\">DefaultDifficultyStrategy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Smtp.html\" title=\"struct mcaptcha::settings::Smtp\">Smtp</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Settings.html\" title=\"struct mcaptcha::settings::Settings\">Settings</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Captcha.html\" title=\"struct mcaptcha::settings::Captcha\">Captcha</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/api/v1/survey/struct.Page.html\" title=\"struct mcaptcha::api::v1::survey::Page\">Page</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Database.html\" title=\"struct mcaptcha::settings::Database\">Database</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"mcaptcha/settings/enum.DBType.html\" title=\"enum mcaptcha::settings::DBType\">DBType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Redis.html\" title=\"struct mcaptcha::settings::Redis\">Redis</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Server.html\" title=\"struct mcaptcha::settings::Server\">Server</a>"]]
|
||||
"mcaptcha":[["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Survey.html\" title=\"struct mcaptcha::settings::Survey\">Survey</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.DefaultDifficultyStrategy.html\" title=\"struct mcaptcha::settings::DefaultDifficultyStrategy\">DefaultDifficultyStrategy</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Smtp.html\" title=\"struct mcaptcha::settings::Smtp\">Smtp</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Settings.html\" title=\"struct mcaptcha::settings::Settings\">Settings</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Captcha.html\" title=\"struct mcaptcha::settings::Captcha\">Captcha</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/api/v1/survey/struct.Page.html\" title=\"struct mcaptcha::api::v1::survey::Page\">Page</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Database.html\" title=\"struct mcaptcha::settings::Database\">Database</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/api/v1/stats/routes/struct.Stats.html\" title=\"struct mcaptcha::api::v1::stats::routes::Stats\">Stats</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"enum\" href=\"mcaptcha/settings/enum.DBType.html\" title=\"enum mcaptcha::settings::DBType\">DBType</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Redis.html\" title=\"struct mcaptcha::settings::Redis\">Redis</a>"],["impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.73.0/core/marker/trait.StructuralEq.html\" title=\"trait core::marker::StructuralEq\">StructuralEq</a> for <a class=\"struct\" href=\"mcaptcha/settings/struct.Server.html\" title=\"struct mcaptcha::settings::Server\">Server</a>"]]
|
||||
};if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})()
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -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="API documentation for the Rust `get_middleware` fn in crate `mcaptcha`."><title>get_middleware in mcaptcha::api::v1 - 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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../static.files/noscript-cffde32267a19fd6.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 fn"><!--[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">☰</button><a class="logo-container" href="../../../mcaptcha/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../../mcaptcha/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha::api::v1</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../../../help.html">?</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>Function <a href="../../index.html">mcaptcha</a>::<wbr><a href="../index.html">api</a>::<wbr><a href="index.html">v1</a>::<wbr><a class="fn" href="#">get_middleware</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/api/v1/mod.rs.html#36-38">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub fn get_middleware() -> Authentication<<a class="struct" href="routes/struct.Routes.html" title="struct mcaptcha::api::v1::routes::Routes">Routes</a>></code></pre></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 `get_middleware` fn in crate `mcaptcha`."><title>get_middleware in mcaptcha::api::v1 - 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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../static.files/noscript-cffde32267a19fd6.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 fn"><!--[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">☰</button><a class="logo-container" href="../../../mcaptcha/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../../mcaptcha/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha::api::v1</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../../../help.html">?</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>Function <a href="../../index.html">mcaptcha</a>::<wbr><a href="../index.html">api</a>::<wbr><a href="index.html">v1</a>::<wbr><a class="fn" href="#">get_middleware</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/api/v1/mod.rs.html#38-40">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub fn get_middleware() -> Authentication<<a class="struct" href="routes/struct.Routes.html" title="struct mcaptcha::api::v1::routes::Routes">Routes</a>></code></pre></section></div></main></body></html>
|
|
@ -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="API documentation for the Rust `services` fn in crate `mcaptcha`."><title>services in mcaptcha::api::v1 - 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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../static.files/noscript-cffde32267a19fd6.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 fn"><!--[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">☰</button><a class="logo-container" href="../../../mcaptcha/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../../mcaptcha/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha::api::v1</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../../../help.html">?</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>Function <a href="../../index.html">mcaptcha</a>::<wbr><a href="../index.html">api</a>::<wbr><a href="index.html">v1</a>::<wbr><a class="fn" href="#">services</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/api/v1/mod.rs.html#21-29">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub fn services(cfg: &mut ServiceConfig)</code></pre></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 `services` fn in crate `mcaptcha`."><title>services in mcaptcha::api::v1 - 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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../static.files/noscript-cffde32267a19fd6.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 fn"><!--[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">☰</button><a class="logo-container" href="../../../mcaptcha/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../../mcaptcha/index.html"><img class="rust-logo" src="../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha::api::v1</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../../../help.html">?</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>Function <a href="../../index.html">mcaptcha</a>::<wbr><a href="../index.html">api</a>::<wbr><a href="index.html">v1</a>::<wbr><a class="fn" href="#">services</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/api/v1/mod.rs.html#22-31">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub fn services(cfg: &mut ServiceConfig)</code></pre></section></div></main></body></html>
|
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="API documentation for the Rust `ROUTES` constant in crate `mcaptcha`."><title>ROUTES in mcaptcha::api::v1::routes - 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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../../static.files/noscript-cffde32267a19fd6.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 constant"><!--[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">☰</button><a class="logo-container" href="../../../../mcaptcha/index.html"><img class="rust-logo" src="../../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../../../mcaptcha/index.html"><img class="rust-logo" src="../../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha::api::v1::routes</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../../../../help.html">?</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>Constant <a href="../../../index.html">mcaptcha</a>::<wbr><a href="../../index.html">api</a>::<wbr><a href="../index.html">v1</a>::<wbr><a href="index.html">routes</a>::<wbr><a class="constant" href="#">ROUTES</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/api/v1/routes.rs.html#16">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub const ROUTES: <a class="struct" href="struct.Routes.html" title="struct mcaptcha::api::v1::routes::Routes">Routes</a>;</code></pre></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 `ROUTES` constant in crate `mcaptcha`."><title>ROUTES in mcaptcha::api::v1::routes - 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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../../static.files/noscript-cffde32267a19fd6.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 constant"><!--[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">☰</button><a class="logo-container" href="../../../../mcaptcha/index.html"><img class="rust-logo" src="../../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../../../mcaptcha/index.html"><img class="rust-logo" src="../../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha::api::v1::routes</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../../../../help.html">?</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>Constant <a href="../../../index.html">mcaptcha</a>::<wbr><a href="../../index.html">api</a>::<wbr><a href="../index.html">v1</a>::<wbr><a href="index.html">routes</a>::<wbr><a class="constant" href="#">ROUTES</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/api/v1/routes.rs.html#17">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub const ROUTES: <a class="struct" href="struct.Routes.html" title="struct mcaptcha::api::v1::routes::Routes">Routes</a>;</code></pre></section></div></main></body></html>
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1 +1 @@
|
|||
window.SIDEBAR_ITEMS = {"fn":["get_middleware","services"],"mod":["account","auth","mcaptcha","meta","notifications","pow","routes","survey"],"struct":["RedirectQuery"]};
|
||||
window.SIDEBAR_ITEMS = {"fn":["get_middleware","services"],"mod":["account","auth","mcaptcha","meta","notifications","pow","routes","stats","survey"],"struct":["RedirectQuery"]};
|
24
mcaptcha/api/v1/stats/enum.BuildDetailsBuilderError.html
Normal file
24
mcaptcha/api/v1/stats/enum.BuildDetailsBuilderError.html
Normal file
File diff suppressed because one or more lines are too long
24
mcaptcha/api/v1/stats/enum.PercentileReqBuilderError.html
Normal file
24
mcaptcha/api/v1/stats/enum.PercentileReqBuilderError.html
Normal file
File diff suppressed because one or more lines are too long
24
mcaptcha/api/v1/stats/enum.PercentileRespBuilderError.html
Normal file
24
mcaptcha/api/v1/stats/enum.PercentileRespBuilderError.html
Normal file
File diff suppressed because one or more lines are too long
1
mcaptcha/api/v1/stats/fn.services.html
Normal file
1
mcaptcha/api/v1/stats/fn.services.html
Normal file
|
@ -0,0 +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 `services` fn in crate `mcaptcha`."><title>services in mcaptcha::api::v1::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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../../static.files/noscript-cffde32267a19fd6.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 fn"><!--[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">☰</button><a class="logo-container" href="../../../../mcaptcha/index.html"><img class="rust-logo" src="../../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../../../../mcaptcha/index.html"><img class="rust-logo" src="../../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha::api::v1::stats</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../../../../help.html">?</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>Function <a href="../../../index.html">mcaptcha</a>::<wbr><a href="../../index.html">api</a>::<wbr><a href="../index.html">v1</a>::<wbr><a href="index.html">stats</a>::<wbr><a class="fn" href="#">services</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/api/v1/stats.rs.html#113-115">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub fn services(cfg: &mut ServiceConfig)</code></pre></section></div></main></body></html>
|
1
mcaptcha/api/v1/stats/index.html
Normal file
1
mcaptcha/api/v1/stats/index.html
Normal file
File diff suppressed because one or more lines are too long
1
mcaptcha/api/v1/stats/routes/index.html
Normal file
1
mcaptcha/api/v1/stats/routes/index.html
Normal file
File diff suppressed because one or more lines are too long
1
mcaptcha/api/v1/stats/routes/sidebar-items.js
Normal file
1
mcaptcha/api/v1/stats/routes/sidebar-items.js
Normal file
|
@ -0,0 +1 @@
|
|||
window.SIDEBAR_ITEMS = {"struct":["Stats"]};
|
30
mcaptcha/api/v1/stats/routes/struct.Stats.html
Normal file
30
mcaptcha/api/v1/stats/routes/struct.Stats.html
Normal file
File diff suppressed because one or more lines are too long
1
mcaptcha/api/v1/stats/sidebar-items.js
Normal file
1
mcaptcha/api/v1/stats/sidebar-items.js
Normal file
|
@ -0,0 +1 @@
|
|||
window.SIDEBAR_ITEMS = {"enum":["BuildDetailsBuilderError","PercentileReqBuilderError","PercentileRespBuilderError"],"fn":["services"],"mod":["routes"],"struct":["BuildDetails","BuildDetailsBuilder","PercentileReq","PercentileReqBuilder","PercentileResp","PercentileRespBuilder","percentile_benches"]};
|
23
mcaptcha/api/v1/stats/struct.BuildDetails.html
Normal file
23
mcaptcha/api/v1/stats/struct.BuildDetails.html
Normal file
File diff suppressed because one or more lines are too long
26
mcaptcha/api/v1/stats/struct.BuildDetailsBuilder.html
Normal file
26
mcaptcha/api/v1/stats/struct.BuildDetailsBuilder.html
Normal file
File diff suppressed because one or more lines are too long
25
mcaptcha/api/v1/stats/struct.PercentileReq.html
Normal file
25
mcaptcha/api/v1/stats/struct.PercentileReq.html
Normal file
File diff suppressed because one or more lines are too long
26
mcaptcha/api/v1/stats/struct.PercentileReqBuilder.html
Normal file
26
mcaptcha/api/v1/stats/struct.PercentileReqBuilder.html
Normal file
File diff suppressed because one or more lines are too long
24
mcaptcha/api/v1/stats/struct.PercentileResp.html
Normal file
24
mcaptcha/api/v1/stats/struct.PercentileResp.html
Normal file
File diff suppressed because one or more lines are too long
25
mcaptcha/api/v1/stats/struct.PercentileRespBuilder.html
Normal file
25
mcaptcha/api/v1/stats/struct.PercentileRespBuilder.html
Normal file
File diff suppressed because one or more lines are too long
18
mcaptcha/api/v1/stats/struct.percentile_benches.html
Normal file
18
mcaptcha/api/v1/stats/struct.percentile_benches.html
Normal file
File diff suppressed because one or more lines are too long
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="API documentation for the Rust `V1_API_ROUTES` constant in crate `mcaptcha`."><title>V1_API_ROUTES in mcaptcha - 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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../static.files/noscript-cffde32267a19fd6.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 constant"><!--[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">☰</button><a class="logo-container" href="../mcaptcha/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../mcaptcha/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../help.html">?</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>Constant <a href="index.html">mcaptcha</a>::<wbr><a class="constant" href="#">V1_API_ROUTES</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/api/v1/routes.rs.html#16">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub const V1_API_ROUTES: <a class="struct" href="api/v1/routes/struct.Routes.html" title="struct mcaptcha::api::v1::routes::Routes">Routes</a>;</code></pre></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 `V1_API_ROUTES` constant in crate `mcaptcha`."><title>V1_API_ROUTES in mcaptcha - 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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../static.files/noscript-cffde32267a19fd6.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 constant"><!--[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">☰</button><a class="logo-container" href="../mcaptcha/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><h2></h2></nav><nav class="sidebar"><a class="logo-container" href="../mcaptcha/index.html"><img class="rust-logo" src="../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><div class="sidebar-elems"><h2><a href="index.html">In mcaptcha</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../help.html">?</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>Constant <a href="index.html">mcaptcha</a>::<wbr><a class="constant" href="#">V1_API_ROUTES</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/api/v1/routes.rs.html#17">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code>pub const V1_API_ROUTES: <a class="struct" href="api/v1/routes/struct.Routes.html" title="struct mcaptcha::api::v1::routes::Routes">Routes</a>;</code></pre></section></div></main></body></html>
|
File diff suppressed because one or more lines are too long
|
@ -2,6 +2,6 @@ var srcIndex = JSON.parse('{\
|
|||
"db_core":["",[],["errors.rs","lib.rs","ops.rs","tests.rs"]],\
|
||||
"db_sqlx_maria":["",[],["errors.rs","lib.rs"]],\
|
||||
"db_sqlx_postgres":["",[],["errors.rs","lib.rs"]],\
|
||||
"mcaptcha":["",[["api",[["v1",[["account",[],["delete.rs","email.rs","mod.rs","password.rs","secret.rs","username.rs"]],["mcaptcha",[],["create.rs","delete.rs","easy.rs","get.rs","mod.rs","stats.rs","update.rs"]],["notifications",[],["add.rs","get.rs","mark_read.rs","mod.rs"]],["pow",[],["get_config.rs","mod.rs","verify_pow.rs","verify_token.rs"]]],["auth.rs","meta.rs","mod.rs","routes.rs","survey.rs"]]],["mod.rs"]],["email",[],["mod.rs","verification.rs"]],["pages",[["auth",[],["login.rs","mod.rs","register.rs","sudo.rs"]],["panel",[["sitekey",[],["add.rs","delete.rs","edit.rs","list.rs","mod.rs","view.rs"]]],["mod.rs","notifications.rs","settings.rs"]]],["errors.rs","mod.rs","routes.rs","sitemap.rs"]],["static_assets",[],["filemap.rs","mod.rs","static_files.rs"]],["widget",[],["mod.rs"]]],["data.rs","date.rs","db.rs","demo.rs","docs.rs","errors.rs","main.rs","routes.rs","settings.rs","stats.rs","survey.rs"]]\
|
||||
"mcaptcha":["",[["api",[["v1",[["account",[],["delete.rs","email.rs","mod.rs","password.rs","secret.rs","username.rs"]],["mcaptcha",[],["create.rs","delete.rs","easy.rs","get.rs","mod.rs","stats.rs","update.rs"]],["notifications",[],["add.rs","get.rs","mark_read.rs","mod.rs"]],["pow",[],["get_config.rs","mod.rs","verify_pow.rs","verify_token.rs"]]],["auth.rs","meta.rs","mod.rs","routes.rs","stats.rs","survey.rs"]]],["mod.rs"]],["email",[],["mod.rs","verification.rs"]],["pages",[["auth",[],["login.rs","mod.rs","register.rs","sudo.rs"]],["panel",[["sitekey",[],["add.rs","delete.rs","edit.rs","list.rs","mod.rs","view.rs"]]],["mod.rs","notifications.rs","settings.rs"]]],["errors.rs","mod.rs","routes.rs","sitemap.rs"]],["static_assets",[],["filemap.rs","mod.rs","static_files.rs"]],["widget",[],["mod.rs"]]],["data.rs","date.rs","db.rs","demo.rs","docs.rs","errors.rs","main.rs","routes.rs","settings.rs","stats.rs","survey.rs"]]\
|
||||
}');
|
||||
createSrcSidebar();
|
||||
|
|
|
@ -39,6 +39,8 @@
|
|||
<a href="#39" id="39">39</a>
|
||||
<a href="#40" id="40">40</a>
|
||||
<a href="#41" id="41">41</a>
|
||||
<a href="#42" id="42">42</a>
|
||||
<a href="#43" id="43">43</a>
|
||||
</pre></div><pre class="rust"><code><span class="comment">// Copyright (C) 2022 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
//
|
||||
|
@ -55,6 +57,7 @@
|
|||
<span class="kw">pub mod </span>notifications;
|
||||
<span class="kw">pub mod </span>pow;
|
||||
<span class="kw">mod </span>routes;
|
||||
<span class="kw">pub mod </span>stats;
|
||||
<span class="kw">pub mod </span>survey;
|
||||
|
||||
<span class="kw">pub use </span>routes::ROUTES;
|
||||
|
@ -67,6 +70,7 @@
|
|||
mcaptcha::services(cfg);
|
||||
notifications::services(cfg);
|
||||
survey::services(cfg);
|
||||
stats::services(cfg);
|
||||
}
|
||||
|
||||
<span class="attr">#[derive(Deserialize)]
|
||||
|
|
|
@ -44,6 +44,9 @@
|
|||
<a href="#44" id="44">44</a>
|
||||
<a href="#45" id="45">45</a>
|
||||
<a href="#46" id="46">46</a>
|
||||
<a href="#47" id="47">47</a>
|
||||
<a href="#48" id="48">48</a>
|
||||
<a href="#49" id="49">49</a>
|
||||
</pre></div><pre class="rust"><code><span class="comment">// Copyright (C) 2022 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
//
|
||||
|
@ -57,6 +60,7 @@
|
|||
<span class="kw">use </span><span class="kw">super</span>::meta::routes::Meta;
|
||||
<span class="kw">use </span><span class="kw">super</span>::notifications::routes::Notifications;
|
||||
<span class="kw">use </span><span class="kw">super</span>::pow::routes::PoW;
|
||||
<span class="kw">use </span><span class="kw">super</span>::stats::routes::Stats;
|
||||
<span class="kw">use </span><span class="kw">super</span>::survey::routes::Survey;
|
||||
|
||||
<span class="kw">pub const </span>ROUTES: Routes = Routes::new();
|
||||
|
@ -69,6 +73,7 @@
|
|||
<span class="kw">pub </span>pow: PoW,
|
||||
<span class="kw">pub </span>survey: Survey,
|
||||
<span class="kw">pub </span>notifications: Notifications,
|
||||
<span class="kw">pub </span>stats: Stats,
|
||||
}
|
||||
|
||||
<span class="kw">impl </span>Routes {
|
||||
|
@ -81,6 +86,7 @@
|
|||
pow: PoW::new(),
|
||||
notifications: Notifications::new(),
|
||||
survey: Survey::new(),
|
||||
stats: Stats::new(),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
505
src/mcaptcha/api/v1/stats.rs.html
Normal file
505
src/mcaptcha/api/v1/stats.rs.html
Normal file
|
@ -0,0 +1,505 @@
|
|||
<!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="Source of the Rust file `src/api/v1/stats.rs`."><title>stats.rs - source</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/SourceSerif4-Bold-a2c9cd1067f8b328.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-cb6f1f67f1bcd037.css" id="mainThemeStyle"><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.73.0 (cc66ad468 2023-10-03)" data-channel="1.73.0" data-search-js="search-6dfdfced5eff6596.js" data-settings-js="settings-de11bff964e9d4e5.js" data-settings-css="settings-8c76f75bfb6bd192.css" data-theme-light-css="light-1596385f77d47ef2.css" data-theme-dark-css="dark-0a43001d3fc2282c.css" data-theme-ayu-css="ayu-fd19013d6ce078bf.css" ><script src="../../../../static.files/storage-db41da1a38ea3cb8.js"></script><script defer src="../../../../static.files/src-script-3280b574d94e47b4.js"></script><script defer src="../../../../src-files.js"></script><script defer src="../../../../static.files/main-0795b7d26be81095.js"></script><noscript><link rel="stylesheet" media="(prefers-color-scheme:light)" href="../../../../static.files/light-1596385f77d47ef2.css"><link rel="stylesheet" media="(prefers-color-scheme:dark)" href="../../../../static.files/dark-0a43001d3fc2282c.css"><link rel="stylesheet" href="../../../../static.files/noscript-cffde32267a19fd6.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 src"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"></nav><main><nav class="sub"><a class="sub-logo-container" href="../../../../mcaptcha/index.html"><img class="rust-logo" src="../../../../static.files/rust-logo-151179464ae7ed46.svg" alt="logo"></a><form class="search-form"><span></span><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" title="help" tabindex="-1"><a href="../../../../help.html">?</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="example-wrap"><div data-nosnippet><pre class="src-line-numbers"><a href="#1" id="1">1</a>
|
||||
<a href="#2" id="2">2</a>
|
||||
<a href="#3" id="3">3</a>
|
||||
<a href="#4" id="4">4</a>
|
||||
<a href="#5" id="5">5</a>
|
||||
<a href="#6" id="6">6</a>
|
||||
<a href="#7" id="7">7</a>
|
||||
<a href="#8" id="8">8</a>
|
||||
<a href="#9" id="9">9</a>
|
||||
<a href="#10" id="10">10</a>
|
||||
<a href="#11" id="11">11</a>
|
||||
<a href="#12" id="12">12</a>
|
||||
<a href="#13" id="13">13</a>
|
||||
<a href="#14" id="14">14</a>
|
||||
<a href="#15" id="15">15</a>
|
||||
<a href="#16" id="16">16</a>
|
||||
<a href="#17" id="17">17</a>
|
||||
<a href="#18" id="18">18</a>
|
||||
<a href="#19" id="19">19</a>
|
||||
<a href="#20" id="20">20</a>
|
||||
<a href="#21" id="21">21</a>
|
||||
<a href="#22" id="22">22</a>
|
||||
<a href="#23" id="23">23</a>
|
||||
<a href="#24" id="24">24</a>
|
||||
<a href="#25" id="25">25</a>
|
||||
<a href="#26" id="26">26</a>
|
||||
<a href="#27" id="27">27</a>
|
||||
<a href="#28" id="28">28</a>
|
||||
<a href="#29" id="29">29</a>
|
||||
<a href="#30" id="30">30</a>
|
||||
<a href="#31" id="31">31</a>
|
||||
<a href="#32" id="32">32</a>
|
||||
<a href="#33" id="33">33</a>
|
||||
<a href="#34" id="34">34</a>
|
||||
<a href="#35" id="35">35</a>
|
||||
<a href="#36" id="36">36</a>
|
||||
<a href="#37" id="37">37</a>
|
||||
<a href="#38" id="38">38</a>
|
||||
<a href="#39" id="39">39</a>
|
||||
<a href="#40" id="40">40</a>
|
||||
<a href="#41" id="41">41</a>
|
||||
<a href="#42" id="42">42</a>
|
||||
<a href="#43" id="43">43</a>
|
||||
<a href="#44" id="44">44</a>
|
||||
<a href="#45" id="45">45</a>
|
||||
<a href="#46" id="46">46</a>
|
||||
<a href="#47" id="47">47</a>
|
||||
<a href="#48" id="48">48</a>
|
||||
<a href="#49" id="49">49</a>
|
||||
<a href="#50" id="50">50</a>
|
||||
<a href="#51" id="51">51</a>
|
||||
<a href="#52" id="52">52</a>
|
||||
<a href="#53" id="53">53</a>
|
||||
<a href="#54" id="54">54</a>
|
||||
<a href="#55" id="55">55</a>
|
||||
<a href="#56" id="56">56</a>
|
||||
<a href="#57" id="57">57</a>
|
||||
<a href="#58" id="58">58</a>
|
||||
<a href="#59" id="59">59</a>
|
||||
<a href="#60" id="60">60</a>
|
||||
<a href="#61" id="61">61</a>
|
||||
<a href="#62" id="62">62</a>
|
||||
<a href="#63" id="63">63</a>
|
||||
<a href="#64" id="64">64</a>
|
||||
<a href="#65" id="65">65</a>
|
||||
<a href="#66" id="66">66</a>
|
||||
<a href="#67" id="67">67</a>
|
||||
<a href="#68" id="68">68</a>
|
||||
<a href="#69" id="69">69</a>
|
||||
<a href="#70" id="70">70</a>
|
||||
<a href="#71" id="71">71</a>
|
||||
<a href="#72" id="72">72</a>
|
||||
<a href="#73" id="73">73</a>
|
||||
<a href="#74" id="74">74</a>
|
||||
<a href="#75" id="75">75</a>
|
||||
<a href="#76" id="76">76</a>
|
||||
<a href="#77" id="77">77</a>
|
||||
<a href="#78" id="78">78</a>
|
||||
<a href="#79" id="79">79</a>
|
||||
<a href="#80" id="80">80</a>
|
||||
<a href="#81" id="81">81</a>
|
||||
<a href="#82" id="82">82</a>
|
||||
<a href="#83" id="83">83</a>
|
||||
<a href="#84" id="84">84</a>
|
||||
<a href="#85" id="85">85</a>
|
||||
<a href="#86" id="86">86</a>
|
||||
<a href="#87" id="87">87</a>
|
||||
<a href="#88" id="88">88</a>
|
||||
<a href="#89" id="89">89</a>
|
||||
<a href="#90" id="90">90</a>
|
||||
<a href="#91" id="91">91</a>
|
||||
<a href="#92" id="92">92</a>
|
||||
<a href="#93" id="93">93</a>
|
||||
<a href="#94" id="94">94</a>
|
||||
<a href="#95" id="95">95</a>
|
||||
<a href="#96" id="96">96</a>
|
||||
<a href="#97" id="97">97</a>
|
||||
<a href="#98" id="98">98</a>
|
||||
<a href="#99" id="99">99</a>
|
||||
<a href="#100" id="100">100</a>
|
||||
<a href="#101" id="101">101</a>
|
||||
<a href="#102" id="102">102</a>
|
||||
<a href="#103" id="103">103</a>
|
||||
<a href="#104" id="104">104</a>
|
||||
<a href="#105" id="105">105</a>
|
||||
<a href="#106" id="106">106</a>
|
||||
<a href="#107" id="107">107</a>
|
||||
<a href="#108" id="108">108</a>
|
||||
<a href="#109" id="109">109</a>
|
||||
<a href="#110" id="110">110</a>
|
||||
<a href="#111" id="111">111</a>
|
||||
<a href="#112" id="112">112</a>
|
||||
<a href="#113" id="113">113</a>
|
||||
<a href="#114" id="114">114</a>
|
||||
<a href="#115" id="115">115</a>
|
||||
<a href="#116" id="116">116</a>
|
||||
<a href="#117" id="117">117</a>
|
||||
<a href="#118" id="118">118</a>
|
||||
<a href="#119" id="119">119</a>
|
||||
<a href="#120" id="120">120</a>
|
||||
<a href="#121" id="121">121</a>
|
||||
<a href="#122" id="122">122</a>
|
||||
<a href="#123" id="123">123</a>
|
||||
<a href="#124" id="124">124</a>
|
||||
<a href="#125" id="125">125</a>
|
||||
<a href="#126" id="126">126</a>
|
||||
<a href="#127" id="127">127</a>
|
||||
<a href="#128" id="128">128</a>
|
||||
<a href="#129" id="129">129</a>
|
||||
<a href="#130" id="130">130</a>
|
||||
<a href="#131" id="131">131</a>
|
||||
<a href="#132" id="132">132</a>
|
||||
<a href="#133" id="133">133</a>
|
||||
<a href="#134" id="134">134</a>
|
||||
<a href="#135" id="135">135</a>
|
||||
<a href="#136" id="136">136</a>
|
||||
<a href="#137" id="137">137</a>
|
||||
<a href="#138" id="138">138</a>
|
||||
<a href="#139" id="139">139</a>
|
||||
<a href="#140" id="140">140</a>
|
||||
<a href="#141" id="141">141</a>
|
||||
<a href="#142" id="142">142</a>
|
||||
<a href="#143" id="143">143</a>
|
||||
<a href="#144" id="144">144</a>
|
||||
<a href="#145" id="145">145</a>
|
||||
<a href="#146" id="146">146</a>
|
||||
<a href="#147" id="147">147</a>
|
||||
<a href="#148" id="148">148</a>
|
||||
<a href="#149" id="149">149</a>
|
||||
<a href="#150" id="150">150</a>
|
||||
<a href="#151" id="151">151</a>
|
||||
<a href="#152" id="152">152</a>
|
||||
<a href="#153" id="153">153</a>
|
||||
<a href="#154" id="154">154</a>
|
||||
<a href="#155" id="155">155</a>
|
||||
<a href="#156" id="156">156</a>
|
||||
<a href="#157" id="157">157</a>
|
||||
<a href="#158" id="158">158</a>
|
||||
<a href="#159" id="159">159</a>
|
||||
<a href="#160" id="160">160</a>
|
||||
<a href="#161" id="161">161</a>
|
||||
<a href="#162" id="162">162</a>
|
||||
<a href="#163" id="163">163</a>
|
||||
<a href="#164" id="164">164</a>
|
||||
<a href="#165" id="165">165</a>
|
||||
<a href="#166" id="166">166</a>
|
||||
<a href="#167" id="167">167</a>
|
||||
<a href="#168" id="168">168</a>
|
||||
<a href="#169" id="169">169</a>
|
||||
<a href="#170" id="170">170</a>
|
||||
<a href="#171" id="171">171</a>
|
||||
<a href="#172" id="172">172</a>
|
||||
<a href="#173" id="173">173</a>
|
||||
<a href="#174" id="174">174</a>
|
||||
<a href="#175" id="175">175</a>
|
||||
<a href="#176" id="176">176</a>
|
||||
<a href="#177" id="177">177</a>
|
||||
<a href="#178" id="178">178</a>
|
||||
<a href="#179" id="179">179</a>
|
||||
<a href="#180" id="180">180</a>
|
||||
<a href="#181" id="181">181</a>
|
||||
<a href="#182" id="182">182</a>
|
||||
<a href="#183" id="183">183</a>
|
||||
<a href="#184" id="184">184</a>
|
||||
<a href="#185" id="185">185</a>
|
||||
<a href="#186" id="186">186</a>
|
||||
<a href="#187" id="187">187</a>
|
||||
<a href="#188" id="188">188</a>
|
||||
<a href="#189" id="189">189</a>
|
||||
<a href="#190" id="190">190</a>
|
||||
<a href="#191" id="191">191</a>
|
||||
<a href="#192" id="192">192</a>
|
||||
<a href="#193" id="193">193</a>
|
||||
<a href="#194" id="194">194</a>
|
||||
<a href="#195" id="195">195</a>
|
||||
<a href="#196" id="196">196</a>
|
||||
<a href="#197" id="197">197</a>
|
||||
<a href="#198" id="198">198</a>
|
||||
<a href="#199" id="199">199</a>
|
||||
<a href="#200" id="200">200</a>
|
||||
<a href="#201" id="201">201</a>
|
||||
<a href="#202" id="202">202</a>
|
||||
<a href="#203" id="203">203</a>
|
||||
<a href="#204" id="204">204</a>
|
||||
<a href="#205" id="205">205</a>
|
||||
<a href="#206" id="206">206</a>
|
||||
<a href="#207" id="207">207</a>
|
||||
<a href="#208" id="208">208</a>
|
||||
<a href="#209" id="209">209</a>
|
||||
<a href="#210" id="210">210</a>
|
||||
<a href="#211" id="211">211</a>
|
||||
<a href="#212" id="212">212</a>
|
||||
<a href="#213" id="213">213</a>
|
||||
<a href="#214" id="214">214</a>
|
||||
<a href="#215" id="215">215</a>
|
||||
<a href="#216" id="216">216</a>
|
||||
<a href="#217" id="217">217</a>
|
||||
<a href="#218" id="218">218</a>
|
||||
<a href="#219" id="219">219</a>
|
||||
<a href="#220" id="220">220</a>
|
||||
<a href="#221" id="221">221</a>
|
||||
<a href="#222" id="222">222</a>
|
||||
<a href="#223" id="223">223</a>
|
||||
<a href="#224" id="224">224</a>
|
||||
<a href="#225" id="225">225</a>
|
||||
<a href="#226" id="226">226</a>
|
||||
<a href="#227" id="227">227</a>
|
||||
<a href="#228" id="228">228</a>
|
||||
<a href="#229" id="229">229</a>
|
||||
<a href="#230" id="230">230</a>
|
||||
<a href="#231" id="231">231</a>
|
||||
<a href="#232" id="232">232</a>
|
||||
<a href="#233" id="233">233</a>
|
||||
<a href="#234" id="234">234</a>
|
||||
<a href="#235" id="235">235</a>
|
||||
<a href="#236" id="236">236</a>
|
||||
<a href="#237" id="237">237</a>
|
||||
<a href="#238" id="238">238</a>
|
||||
<a href="#239" id="239">239</a>
|
||||
<a href="#240" id="240">240</a>
|
||||
<a href="#241" id="241">241</a>
|
||||
<a href="#242" id="242">242</a>
|
||||
<a href="#243" id="243">243</a>
|
||||
<a href="#244" id="244">244</a>
|
||||
<a href="#245" id="245">245</a>
|
||||
<a href="#246" id="246">246</a>
|
||||
<a href="#247" id="247">247</a>
|
||||
<a href="#248" id="248">248</a>
|
||||
<a href="#249" id="249">249</a>
|
||||
<a href="#250" id="250">250</a>
|
||||
<a href="#251" id="251">251</a>
|
||||
<a href="#252" id="252">252</a>
|
||||
</pre></div><pre class="rust"><code><span class="comment">// Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
// SPDX-FileCopyrightText: 2023 Aravinth Manivannan <realaravinth@batsense.net>
|
||||
//
|
||||
// SPDX-License-Identifier: AGPL-3.0-or-later
|
||||
</span><span class="kw">use </span>actix_web::{web, HttpResponse, Responder};
|
||||
<span class="kw">use </span>derive_builder::Builder;
|
||||
<span class="kw">use </span>serde::{Deserialize, Serialize};
|
||||
|
||||
<span class="kw">use </span><span class="kw">crate</span>::errors::<span class="kw-2">*</span>;
|
||||
<span class="kw">use </span><span class="kw">crate</span>::AppData;
|
||||
|
||||
<span class="attr">#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
|
||||
</span><span class="kw">pub struct </span>BuildDetails {
|
||||
<span class="kw">pub </span>version: <span class="kw-2">&</span><span class="lifetime">'static </span>str,
|
||||
<span class="kw">pub </span>git_commit_hash: <span class="kw-2">&</span><span class="lifetime">'static </span>str,
|
||||
}
|
||||
|
||||
<span class="kw">pub mod </span>routes {
|
||||
<span class="kw">use </span>serde::{Deserialize, Serialize};
|
||||
|
||||
<span class="attr">#[derive(Clone, Debug, Eq, PartialEq, Serialize, Deserialize)]
|
||||
</span><span class="kw">pub struct </span>Stats {
|
||||
<span class="kw">pub </span>percentile_benches: <span class="kw-2">&</span><span class="lifetime">'static </span>str,
|
||||
}
|
||||
|
||||
<span class="kw">impl </span>Stats {
|
||||
<span class="kw">pub const fn </span>new() -> <span class="self">Self </span>{
|
||||
<span class="self">Self </span>{
|
||||
percentile_benches: <span class="string">"/api/v1/stats/analytics/percentile"</span>,
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
<span class="doccomment">/// Get difficulty factor with max time limit for percentile of stats
|
||||
</span><span class="attr">#[my_codegen::post(path = <span class="string">"crate::V1_API_ROUTES.stats.percentile_benches"</span>)]
|
||||
</span><span class="kw">async fn </span>percentile_benches(
|
||||
data: AppData,
|
||||
payload: web::Json<PercentileReq>,
|
||||
) -> ServiceResult<<span class="kw">impl </span>Responder> {
|
||||
<span class="kw">let </span>count = data.db.stats_get_num_logs_under_time(payload.time).<span class="kw">await</span><span class="question-mark">?</span>;
|
||||
|
||||
<span class="kw">if </span>count == <span class="number">0 </span>{
|
||||
<span class="kw">return </span><span class="prelude-val">Ok</span>(HttpResponse::Ok().json(PercentileResp {
|
||||
difficulty_factor: <span class="prelude-val">None</span>,
|
||||
}));
|
||||
}
|
||||
|
||||
<span class="kw">if </span>count < <span class="number">2 </span>{
|
||||
<span class="kw">return </span><span class="prelude-val">Ok</span>(HttpResponse::Ok().json(PercentileResp {
|
||||
difficulty_factor: <span class="prelude-val">None</span>,
|
||||
}));
|
||||
}
|
||||
|
||||
<span class="kw">let </span>location = ((count - <span class="number">1</span>) <span class="kw">as </span>f64 * (payload.percentile / <span class="number">100.00</span>)) + <span class="number">1.00</span>;
|
||||
<span class="kw">let </span>fraction = location - location.floor();
|
||||
|
||||
<span class="kw">if </span>fraction > <span class="number">0.00 </span>{
|
||||
<span class="kw">if let </span>(<span class="prelude-val">Some</span>(base), <span class="prelude-val">Some</span>(ceiling)) = (
|
||||
data.db
|
||||
.stats_get_entry_at_location_for_time_limit_asc(
|
||||
payload.time,
|
||||
location.floor() <span class="kw">as </span>u32,
|
||||
)
|
||||
.<span class="kw">await</span><span class="question-mark">?</span>,
|
||||
data.db
|
||||
.stats_get_entry_at_location_for_time_limit_asc(
|
||||
payload.time,
|
||||
location.floor() <span class="kw">as </span>u32 + <span class="number">1</span>,
|
||||
)
|
||||
.<span class="kw">await</span><span class="question-mark">?</span>,
|
||||
) {
|
||||
<span class="kw">let </span>res = base <span class="kw">as </span>u32 + ((ceiling - base) <span class="kw">as </span>f64 * fraction).floor() <span class="kw">as </span>u32;
|
||||
|
||||
<span class="kw">return </span><span class="prelude-val">Ok</span>(HttpResponse::Ok().json(PercentileResp {
|
||||
difficulty_factor: <span class="prelude-val">Some</span>(res),
|
||||
}));
|
||||
}
|
||||
} <span class="kw">else </span>{
|
||||
<span class="kw">if let </span><span class="prelude-val">Some</span>(base) = data
|
||||
.db
|
||||
.stats_get_entry_at_location_for_time_limit_asc(
|
||||
payload.time,
|
||||
location.floor() <span class="kw">as </span>u32,
|
||||
)
|
||||
.<span class="kw">await</span><span class="question-mark">?
|
||||
</span>{
|
||||
<span class="kw">let </span>res = base <span class="kw">as </span>u32;
|
||||
|
||||
<span class="kw">return </span><span class="prelude-val">Ok</span>(HttpResponse::Ok().json(PercentileResp {
|
||||
difficulty_factor: <span class="prelude-val">Some</span>(res),
|
||||
}));
|
||||
}
|
||||
};
|
||||
<span class="prelude-val">Ok</span>(HttpResponse::Ok().json(PercentileResp {
|
||||
difficulty_factor: <span class="prelude-val">None</span>,
|
||||
}))
|
||||
}
|
||||
|
||||
<span class="attr">#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
|
||||
</span><span class="doccomment">/// Health check return datatype
|
||||
</span><span class="kw">pub struct </span>PercentileReq {
|
||||
time: u32,
|
||||
percentile: f64,
|
||||
}
|
||||
|
||||
<span class="attr">#[derive(Clone, Debug, Deserialize, Builder, Serialize)]
|
||||
</span><span class="doccomment">/// Health check return datatype
|
||||
</span><span class="kw">pub struct </span>PercentileResp {
|
||||
difficulty_factor: <span class="prelude-ty">Option</span><u32>,
|
||||
}
|
||||
|
||||
<span class="kw">pub fn </span>services(cfg: <span class="kw-2">&mut </span>web::ServiceConfig) {
|
||||
cfg.service(percentile_benches);
|
||||
}
|
||||
|
||||
<span class="attr">#[cfg(test)]
|
||||
</span><span class="kw">mod </span>tests {
|
||||
<span class="kw">use </span>actix_web::{http::StatusCode, test, App};
|
||||
|
||||
<span class="kw">use super</span>::<span class="kw-2">*</span>;
|
||||
<span class="kw">use </span><span class="kw">crate</span>::api::v1::services;
|
||||
<span class="kw">use crate</span>::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="attr">#[actix_rt::test]
|
||||
</span><span class="kw">async fn </span>stats_bench_work_pg() {
|
||||
<span class="kw">let </span>data = <span class="kw">crate</span>::tests::pg::get_data().<span class="kw">await</span>;
|
||||
stats_bench_work(data).<span class="kw">await</span>;
|
||||
}
|
||||
|
||||
<span class="attr">#[actix_rt::test]
|
||||
</span><span class="kw">async fn </span>stats_bench_work_maria() {
|
||||
<span class="kw">let </span>data = <span class="kw">crate</span>::tests::maria::get_data().<span class="kw">await</span>;
|
||||
stats_bench_work(data).<span class="kw">await</span>;
|
||||
}
|
||||
|
||||
<span class="kw">async fn </span>stats_bench_work(data: ArcData) {
|
||||
<span class="kw">use </span><span class="kw">crate</span>::tests::<span class="kw-2">*</span>;
|
||||
|
||||
<span class="kw">const </span>NAME: <span class="kw-2">&</span>str = <span class="string">"benchstatsuesr"</span>;
|
||||
<span class="kw">const </span>EMAIL: <span class="kw-2">&</span>str = <span class="string">"benchstatsuesr@testadminuser.com"</span>;
|
||||
<span class="kw">const </span>PASSWORD: <span class="kw-2">&</span>str = <span class="string">"longpassword2"</span>;
|
||||
|
||||
<span class="kw">const </span>DEVICE_USER_PROVIDED: <span class="kw-2">&</span>str = <span class="string">"foo"</span>;
|
||||
<span class="kw">const </span>DEVICE_SOFTWARE_RECOGNISED: <span class="kw-2">&</span>str = <span class="string">"Foobar.v2"</span>;
|
||||
<span class="kw">const </span>THREADS: i32 = <span class="number">4</span>;
|
||||
|
||||
<span class="kw">let </span>data = <span class="kw-2">&</span>data;
|
||||
{
|
||||
delete_user(<span class="kw-2">&</span>data, NAME).<span class="kw">await</span>;
|
||||
}
|
||||
|
||||
register_and_signin(data, NAME, EMAIL, PASSWORD).<span class="kw">await</span>;
|
||||
<span class="comment">// create captcha
|
||||
</span><span class="kw">let </span>(<span class="kw">_</span>, _signin_resp, key) = add_levels_util(data, NAME, PASSWORD).<span class="kw">await</span>;
|
||||
<span class="kw">let </span>app = <span class="macro">get_app!</span>(data).<span class="kw">await</span>;
|
||||
|
||||
<span class="kw">let </span>page = <span class="number">1</span>;
|
||||
<span class="kw">let </span>tmp_id = uuid::Uuid::new_v4();
|
||||
<span class="kw">let </span>download_rotue = V1_API_ROUTES
|
||||
.survey
|
||||
.get_download_route(<span class="kw-2">&</span>tmp_id.to_string(), page);
|
||||
|
||||
<span class="kw">let </span>download_req = test::call_service(
|
||||
<span class="kw-2">&</span>app,
|
||||
test::TestRequest::get().uri(<span class="kw-2">&</span>download_rotue).to_request(),
|
||||
)
|
||||
.<span class="kw">await</span>;
|
||||
<span class="macro">assert_eq!</span>(download_req.status(), StatusCode::NOT_FOUND);
|
||||
|
||||
data.db
|
||||
.analytics_create_psuedo_id_if_not_exists(<span class="kw-2">&</span>key.key)
|
||||
.<span class="kw">await
|
||||
</span>.unwrap();
|
||||
|
||||
<span class="kw">let </span>psuedo_id = data
|
||||
.db
|
||||
.analytics_get_psuedo_id_from_capmaign_id(<span class="kw-2">&</span>key.key)
|
||||
.<span class="kw">await
|
||||
</span>.unwrap();
|
||||
|
||||
<span class="kw">for </span>i <span class="kw">in </span><span class="number">1</span>..<span class="number">6 </span>{
|
||||
<span class="macro">println!</span>(<span class="string">"[{i}] Saving analytics"</span>);
|
||||
<span class="kw">let </span>analytics = db_core::CreatePerformanceAnalytics {
|
||||
time: i,
|
||||
difficulty_factor: i,
|
||||
worker_type: <span class="string">"wasm"</span>.into(),
|
||||
};
|
||||
data.db.analysis_save(<span class="kw-2">&</span>key.key, <span class="kw-2">&</span>analytics).<span class="kw">await</span>.unwrap();
|
||||
}
|
||||
|
||||
<span class="kw">let </span>msg = PercentileReq {
|
||||
time: <span class="number">1</span>,
|
||||
percentile: <span class="number">99.00</span>,
|
||||
};
|
||||
<span class="kw">let </span>resp = test::call_service(
|
||||
<span class="kw-2">&</span>app,
|
||||
<span class="macro">post_request!</span>(<span class="kw-2">&</span>msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
|
||||
)
|
||||
.<span class="kw">await</span>;
|
||||
<span class="macro">assert_eq!</span>(resp.status(), StatusCode::OK);
|
||||
<span class="kw">let </span>resp: PercentileResp = test::read_body_json(resp).<span class="kw">await</span>;
|
||||
|
||||
<span class="macro">assert!</span>(resp.difficulty_factor.is_none());
|
||||
|
||||
<span class="kw">let </span>msg = PercentileReq {
|
||||
time: <span class="number">1</span>,
|
||||
percentile: <span class="number">100.00</span>,
|
||||
};
|
||||
|
||||
<span class="kw">let </span>resp = test::call_service(
|
||||
<span class="kw-2">&</span>app,
|
||||
<span class="macro">post_request!</span>(<span class="kw-2">&</span>msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
|
||||
)
|
||||
.<span class="kw">await</span>;
|
||||
<span class="macro">assert_eq!</span>(resp.status(), StatusCode::OK);
|
||||
<span class="kw">let </span>resp: PercentileResp = test::read_body_json(resp).<span class="kw">await</span>;
|
||||
|
||||
<span class="macro">assert!</span>(resp.difficulty_factor.is_none());
|
||||
|
||||
<span class="kw">let </span>msg = PercentileReq {
|
||||
time: <span class="number">2</span>,
|
||||
percentile: <span class="number">100.00</span>,
|
||||
};
|
||||
|
||||
<span class="kw">let </span>resp = test::call_service(
|
||||
<span class="kw-2">&</span>app,
|
||||
<span class="macro">post_request!</span>(<span class="kw-2">&</span>msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
|
||||
)
|
||||
.<span class="kw">await</span>;
|
||||
<span class="macro">assert_eq!</span>(resp.status(), StatusCode::OK);
|
||||
<span class="kw">let </span>resp: PercentileResp = test::read_body_json(resp).<span class="kw">await</span>;
|
||||
|
||||
<span class="macro">assert_eq!</span>(resp.difficulty_factor.unwrap(), <span class="number">2</span>);
|
||||
|
||||
<span class="kw">let </span>msg = PercentileReq {
|
||||
time: <span class="number">5</span>,
|
||||
percentile: <span class="number">90.00</span>,
|
||||
};
|
||||
|
||||
<span class="kw">let </span>resp = test::call_service(
|
||||
<span class="kw-2">&</span>app,
|
||||
<span class="macro">post_request!</span>(<span class="kw-2">&</span>msg, V1_API_ROUTES.stats.percentile_benches).to_request(),
|
||||
)
|
||||
.<span class="kw">await</span>;
|
||||
<span class="macro">assert_eq!</span>(resp.status(), StatusCode::OK);
|
||||
<span class="kw">let </span>resp: PercentileResp = test::read_body_json(resp).<span class="kw">await</span>;
|
||||
|
||||
<span class="macro">assert_eq!</span>(resp.difficulty_factor.unwrap(), <span class="number">4</span>);
|
||||
delete_user(<span class="kw-2">&</span>data, NAME).<span class="kw">await</span>;
|
||||
}
|
||||
}
|
||||
</code></pre></div></section></main></body></html>
|
Loading…
Reference in a new issue