Function mcaptcha::api::v1::auth::services [−][src]
pub fn services(cfg: &mut ServiceConfig)
diff --git a/implementors/mcaptcha/pages/errors/trait.Errorable.js b/implementors/mcaptcha/pages/errors/trait.Errorable.js deleted file mode 100644 index 34da09c2..00000000 --- a/implementors/mcaptcha/pages/errors/trait.Errorable.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["mcaptcha"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/mcaptcha/api/v1/auth/fn.services.html b/mcaptcha/api/v1/auth/fn.services.html index d5967838..68cfcf31 100644 --- a/mcaptcha/api/v1/auth/fn.services.html +++ b/mcaptcha/api/v1/auth/fn.services.html @@ -1,5 +1,5 @@
pub fn services(cfg: &mut ServiceConfig)
pub fn services(cfg: &mut ServiceConfig)
| routes | |
| runners |
| login | |
| register | |
| signout |
| services |
| Auth |
logout: &'static strlogin: &'static strregister: &'static strimpl Auth[src]impl RefUnwindSafe for Auth[src]impl Send for Auth[src]impl Sync for Auth[src]impl Unpin for Auth[src]impl UnwindSafe for Auth[src]impl<T> Any for T where
T: 'static + ?Sized, [src]pub fn type_id(&self) -> TypeId[src]Gets the TypeId of self. Read more
logout: &'static strlogin: &'static strregister: &'static strimpl Auth[src]impl RefUnwindSafe for Auth[src]impl Send for Auth[src]impl Sync for Auth[src]impl Unpin for Auth[src]impl UnwindSafe for Auth[src]impl<T> Any for T where
T: 'static + ?Sized, [src]impl<T> Borrow<T> for T where
T: ?Sized, [src]impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
impl<T> Conv for Tpub fn conv<T>(self) -> T where
Self: Into<T>, Converts self into T using Into<T>. Read more
pub async fn login_runner(
payload: &Login,
data: &AppData
) -> Result<(), ServiceError>
pub async fn login_runner(
payload: Login,
data: &AppData
) -> Result<String, ServiceError>
returns Ok(()) when everything checks out and the user is authenticated. Erros otherwise
pub async fn register_runner(
payload: &Register,
data: &AppData
) -> Result<(), ServiceError>
pub async fn register_runner(
payload: &Register,
data: &AppData
) -> Result<(), ServiceError>
| Login | |
| Password | |
| Register |
| login_runner | returns Ok(()) when everything checks out and the user is authenticated. Erros otherwise |
| register_runner |
pub struct Login {
- pub username: String,
+Struct mcaptcha::api::v1::auth::runners::Login [−][src]
- Fields
username: Stringpassword: StringTrait Implementations
impl Clone for Login[src]
fn clone(&self) -> Login[src]
Returns a copy of the value. Read more
+ Fieldslogin: Stringpassword: StringTrait Implementations
impl Clone for Login[src]
fn clone(&self) -> Login[src]
Returns a copy of the value. Read more
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
Performs copy-assignment from source. Read more
-impl Debug for Login[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
-impl<'de> Deserialize<'de> for Login[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
Deserialize this value from the given Serde deserializer. Read more
-impl Serialize for Login[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer, [src]
Serialize this value into the given Serde serializer. Read more
+impl Debug for Login[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
+impl<'de> Deserialize<'de> for Login[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
Deserialize this value from the given Serde deserializer. Read more
+impl Serialize for Login[src]
Auto Trait Implementations
impl RefUnwindSafe for Login[src]
impl Send for Login[src]
impl Sync for Login[src]
impl Unpin for Login[src]
impl UnwindSafe for Login[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
diff --git a/mcaptcha/api/v1/auth/runners/struct.Password.html b/mcaptcha/api/v1/auth/runners/struct.Password.html
index ada73aa2..587dd18b 100644
--- a/mcaptcha/api/v1/auth/runners/struct.Password.html
+++ b/mcaptcha/api/v1/auth/runners/struct.Password.html
@@ -1,14 +1,14 @@
mcaptcha::api::v1::auth::runners::Password - Rust
Struct mcaptcha::api::v1::auth::runners::Password [−][src]
Struct mcaptcha::api::v1::auth::runners::Password [−][src]
pub struct Password {
pub password: String,
}
- Fields
password: StringTrait Implementations
impl Clone for Password[src]
fn clone(&self) -> Password[src]
Returns a copy of the value. Read more
+ Fieldspassword: StringTrait Implementations
impl Clone for Password[src]
fn clone(&self) -> Password[src]
Returns a copy of the value. Read more
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
Performs copy-assignment from source. Read more
-impl Debug for Password[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
-impl<'de> Deserialize<'de> for Password[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
Deserialize this value from the given Serde deserializer. Read more
-impl Serialize for Password[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer, [src]
Serialize this value into the given Serde serializer. Read more
+impl Debug for Password[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
+impl<'de> Deserialize<'de> for Password[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
Deserialize this value from the given Serde deserializer. Read more
+impl Serialize for Password[src]
Auto Trait Implementations
impl RefUnwindSafe for Password[src]
impl Send for Password[src]
impl Sync for Password[src]
impl Unpin for Password[src]
impl UnwindSafe for Password[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
diff --git a/mcaptcha/api/v1/auth/runners/struct.Register.html b/mcaptcha/api/v1/auth/runners/struct.Register.html
index 6d06796e..c658d089 100644
--- a/mcaptcha/api/v1/auth/runners/struct.Register.html
+++ b/mcaptcha/api/v1/auth/runners/struct.Register.html
@@ -1,17 +1,17 @@
mcaptcha::api::v1::auth::runners::Register - Rust
Struct mcaptcha::api::v1::auth::runners::Register [−][src]
Struct mcaptcha::api::v1::auth::runners::Register [−][src]
pub struct Register {
pub username: String,
pub password: String,
pub confirm_password: String,
pub email: Option<String>,
}
- Fields
username: Stringpassword: Stringconfirm_password: Stringemail: Option<String>Trait Implementations
impl Clone for Register[src]
fn clone(&self) -> Register[src]
Returns a copy of the value. Read more
+ Fieldsusername: Stringpassword: Stringconfirm_password: Stringemail: Option<String>Trait Implementations
impl Clone for Register[src]
fn clone(&self) -> Register[src]
Returns a copy of the value. Read more
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
Performs copy-assignment from source. Read more
-impl Debug for Register[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
-impl<'de> Deserialize<'de> for Register[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
Deserialize this value from the given Serde deserializer. Read more
-impl Serialize for Register[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer, [src]
Serialize this value into the given Serde serializer. Read more
+impl Debug for Register[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
+impl<'de> Deserialize<'de> for Register[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
Deserialize this value from the given Serde deserializer. Read more
+impl Serialize for Register[src]
Auto Trait Implementations
impl RefUnwindSafe for Register[src]
impl Send for Register[src]
impl Sync for Register[src]
impl Unpin for Register[src]
impl UnwindSafe for Register[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
diff --git a/mcaptcha/api/v1/auth/struct.login.html b/mcaptcha/api/v1/auth/struct.login.html
index 8249d3a4..483ad527 100644
--- a/mcaptcha/api/v1/auth/struct.login.html
+++ b/mcaptcha/api/v1/auth/struct.login.html
@@ -1,7 +1,7 @@
mcaptcha::api::v1::auth::login - Rust
Struct mcaptcha::api::v1::auth::login [−][src]
pub struct login;
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for login[src]
impl Send for login[src]
impl Sync for login[src]
impl Unpin for login[src]
impl UnwindSafe for login[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
pub fn type_id(&self) -> TypeId[src]
Gets the TypeId of self. Read more
+ 
Struct mcaptcha::api::v1::auth::login [−][src]
pub struct login;
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for login[src]
impl Send for login[src]
impl Sync for login[src]
impl Unpin for login[src]
impl UnwindSafe for login[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
impl<T> Conv for T
pub fn conv<T>(self) -> T where
Self: Into<T>,
Converts self into T using Into<T>. Read more
diff --git a/mcaptcha/api/v1/auth/struct.register.html b/mcaptcha/api/v1/auth/struct.register.html
index 58bd25e7..0d8b38d8 100644
--- a/mcaptcha/api/v1/auth/struct.register.html
+++ b/mcaptcha/api/v1/auth/struct.register.html
@@ -1,7 +1,7 @@
mcaptcha::api::v1::auth::register - Rust
Struct mcaptcha::api::v1::auth::register [−][src]
pub struct register;
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for register[src]
impl Send for register[src]
impl Sync for register[src]
impl Unpin for register[src]
impl UnwindSafe for register[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
pub fn type_id(&self) -> TypeId[src]
Gets the TypeId of self. Read more
+ 
Struct mcaptcha::api::v1::auth::register [−][src]
pub struct register;
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for register[src]
impl Send for register[src]
impl Sync for register[src]
impl Unpin for register[src]
impl UnwindSafe for register[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
impl<T> Conv for T
pub fn conv<T>(self) -> T where
Self: Into<T>,
Converts self into T using Into<T>. Read more
diff --git a/mcaptcha/api/v1/auth/struct.signout.html b/mcaptcha/api/v1/auth/struct.signout.html
index 0d1fe0ee..4d0165a0 100644
--- a/mcaptcha/api/v1/auth/struct.signout.html
+++ b/mcaptcha/api/v1/auth/struct.signout.html
@@ -1,7 +1,7 @@
mcaptcha::api::v1::auth::signout - Rust
Struct mcaptcha::api::v1::auth::signout [−][src]
pub struct signout;
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for signout[src]
impl Send for signout[src]
impl Sync for signout[src]
impl Unpin for signout[src]
impl UnwindSafe for signout[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
pub fn type_id(&self) -> TypeId[src]
Gets the TypeId of self. Read more
+ 
Struct mcaptcha::api::v1::auth::signout [−][src]
pub struct signout;
Trait Implementations
Auto Trait Implementations
impl RefUnwindSafe for signout[src]
impl Send for signout[src]
impl Sync for signout[src]
impl Unpin for signout[src]
impl UnwindSafe for signout[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
impl<T> Conv for T
pub fn conv<T>(self) -> T where
Self: Into<T>,
Converts self into T using Into<T>. Read more
diff --git a/mcaptcha/errors/enum.PageError.html b/mcaptcha/errors/enum.PageError.html
index 1a35e26d..698bdd71 100644
--- a/mcaptcha/errors/enum.PageError.html
+++ b/mcaptcha/errors/enum.PageError.html
@@ -1,25 +1,25 @@
mcaptcha::errors::PageError - Rust
Enum mcaptcha::errors::PageError [−][src]
Enum mcaptcha::errors::PageError [−][src]
pub enum PageError {
InternalServerError,
ServiceError(ServiceError),
}
Variants
-ServiceError(ServiceError)Trait Implementations
impl Debug for PageError[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
-impl Display for PageError[src]
fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
-impl Error for PageError[src]
fn source(&self) -> Option<&(dyn Error + 'static)>[src]
The lower-level source of this error, if any. Read more
+ServiceError(ServiceError)Trait Implementations
impl Debug for PageError[src]
fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
+impl Display for PageError[src]
fn fmt(&self, _derive_more_display_formatter: &mut Formatter<'_>) -> Result[src]
Formats the value using the given formatter. Read more
+impl Error for PageError[src]
fn source(&self) -> Option<&(dyn Error + 'static)>[src]
The lower-level source of this error, if any. Read more
pub fn backtrace(&self) -> Option<&Backtrace>[src]
🔬 This is a nightly-only experimental API. (backtrace)Returns a stack backtrace, if available, of where this error occurred. Read more
pub fn description(&self) -> &str1.0.0[src]
👎 Deprecated since 1.42.0: use the Display impl or to_string()
pub fn cause(&self) -> Option<&dyn Error>1.0.0[src]
👎 Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
-impl From<Error> for PageError[src]
impl From<ServiceError> for PageError[src]
fn from(e: ServiceError) -> Self[src]
Performs the conversion.
-impl PartialEq<PageError> for PageError[src]
impl From<Error> for PageError[src]
impl From<ServiceError> for PageError[src]
fn from(e: ServiceError) -> Self[src]
Performs the conversion.
+impl PartialEq<PageError> for PageError[src]
fn eq(&self, other: &PageError) -> bool[src]
This method tests for self and other values to be equal, and is used
by ==. Read more
-fn ne(&self, other: &PageError) -> bool[src]
This method tests for !=.
-impl ResponseError for PageError[src]
fn error_response(&self) -> HttpResponse[src]
Create response for error Read more
-fn status_code(&self) -> StatusCode[src]
Response's status code Read more
-impl StructuralPartialEq for PageError[src]
Auto Trait Implementations
impl !RefUnwindSafe for PageError[src]
impl Send for PageError[src]
impl Sync for PageError[src]
impl Unpin for PageError[src]
impl !UnwindSafe for PageError[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
pub fn type_id(&self) -> TypeId[src]
Gets the TypeId of self. Read more
+fn ne(&self, other: &PageError) -> bool[src]
This method tests for !=.
+impl ResponseError for PageError[src]
fn error_response(&self) -> HttpResponse[src]
Create response for error Read more
+fn status_code(&self) -> StatusCode[src]
Response's status code Read more
+impl StructuralPartialEq for PageError[src]
Auto Trait Implementations
impl !RefUnwindSafe for PageError[src]
impl Send for PageError[src]
impl Sync for PageError[src]
impl Unpin for PageError[src]
impl !UnwindSafe for PageError[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
impl<T> Conv for T
pub fn conv<T>(self) -> T where
Self: Into<T>,
Converts self into T using Into<T>. Read more
diff --git a/mcaptcha/errors/enum.ServiceError.html b/mcaptcha/errors/enum.ServiceError.html
index 5b0deb1e..ca270d29 100644
--- a/mcaptcha/errors/enum.ServiceError.html
+++ b/mcaptcha/errors/enum.ServiceError.html
@@ -1,13 +1,14 @@
mcaptcha::errors::ServiceError - Rust
-Enum mcaptcha::errors::ServiceError [−][src]
pub enum ServiceError {
+Enum mcaptcha::errors::ServiceError [−][src]
pub enum ServiceError {
InternalServerError,
ClosedForRegistration,
NotAnEmail,
NotAUrl,
WrongPassword,
UsernameNotFound,
+ AccountNotFound,
ProfainityError,
BlacklistError,
UsernameCaseMappedError,
@@ -20,7 +21,7 @@
CaptchaError(CaptchaError),
}
Variants
-when the value passed contains profainity
+when the value passed contains profainity
when the value passed contains blacklisted words
see blacklist
when the value passed contains characters not present
@@ -36,17 +37,17 @@ token not found
pub fn backtrace(&self) -> Option<&Backtrace>[src]
🔬 This is a nightly-only experimental API. (backtrace)Returns a stack backtrace, if available, of where this error occurred. Read more
pub fn description(&self) -> &str1.0.0[src]
👎 Deprecated since 1.42.0: use the Display impl or to_string()
pub fn cause(&self) -> Option<&dyn Error>1.0.0[src]
👎 Deprecated since 1.33.0: replaced by Error::source, which can support downcasting
-impl From<CaptchaError> for ServiceError[src]
fn from(e: CaptchaError) -> ServiceError[src]
Performs the conversion.
-impl From<CredsError> for ServiceError[src]
fn from(e: CredsError) -> ServiceError[src]
Performs the conversion.
-impl From<Error> for ServiceError[src]
impl From<ParseError> for ServiceError[src]
fn from(_: ParseError) -> ServiceError[src]
Performs the conversion.
-impl From<ServiceError> for PageError[src]
fn from(e: ServiceError) -> Self[src]
Performs the conversion.
-impl From<ValidationErrors> for ServiceError[src]
fn from(_: ValidationErrors) -> ServiceError[src]
Performs the conversion.
+impl From<CaptchaError> for ServiceError[src]
fn from(e: CaptchaError) -> ServiceError[src]
Performs the conversion.
+impl From<CredsError> for ServiceError[src]
fn from(e: CredsError) -> ServiceError[src]
Performs the conversion.
+impl From<Error> for ServiceError[src]
impl From<ParseError> for ServiceError[src]
fn from(_: ParseError) -> ServiceError[src]
Performs the conversion.
+impl From<ServiceError> for PageError[src]
fn from(e: ServiceError) -> Self[src]
Performs the conversion.
+impl From<ValidationErrors> for ServiceError[src]
fn from(_: ValidationErrors) -> ServiceError[src]
Performs the conversion.
impl PartialEq<ServiceError> for ServiceError[src]
fn eq(&self, other: &ServiceError) -> bool[src]
This method tests for self and other values to be equal, and is used
by ==. Read more
fn ne(&self, other: &ServiceError) -> bool[src]
This method tests for !=.
-impl ResponseError for ServiceError[src]
fn error_response(&self) -> HttpResponse[src]
Create response for error Read more
-fn status_code(&self) -> StatusCode[src]
Response's status code Read more
+impl ResponseError for ServiceError[src]
fn error_response(&self) -> HttpResponse[src]
Create response for error Read more
+fn status_code(&self) -> StatusCode[src]
Response's status code Read more
impl StructuralPartialEq for ServiceError[src]
Auto Trait Implementations
impl !RefUnwindSafe for ServiceError[src]
impl Send for ServiceError[src]
impl Sync for ServiceError[src]
impl Unpin for ServiceError[src]
impl !UnwindSafe for ServiceError[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
diff --git a/mcaptcha/errors/index.html b/mcaptcha/errors/index.html
index ddf2915f..57430b9d 100644
--- a/mcaptcha/errors/index.html
+++ b/mcaptcha/errors/index.html
@@ -1,7 +1,7 @@
mcaptcha::errors - Rust
Module mcaptcha::errors [−][src]
Structs
+ 
Module mcaptcha::errors [−][src]
Structs
ErrorToResponse
Enums
PageError ServiceError
Type Definitions
PageResult ServiceResult
diff --git a/mcaptcha/errors/struct.ErrorToResponse.html b/mcaptcha/errors/struct.ErrorToResponse.html
index 595e70af..e6675d27 100644
--- a/mcaptcha/errors/struct.ErrorToResponse.html
+++ b/mcaptcha/errors/struct.ErrorToResponse.html
@@ -1,11 +1,11 @@
mcaptcha::errors::ErrorToResponse - Rust
Struct mcaptcha::errors::ErrorToResponse [−][src]
Struct mcaptcha::errors::ErrorToResponse [−][src]
pub struct ErrorToResponse {
pub error: String,
}
- Fields
error: StringTrait Implementations
impl<'de> Deserialize<'de> for ErrorToResponse[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
Deserialize this value from the given Serde deserializer. Read more
-impl Serialize for ErrorToResponse[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where
__S: Serializer, [src]
Serialize this value into the given Serde serializer. Read more
+ Fieldserror: StringTrait Implementations
impl<'de> Deserialize<'de> for ErrorToResponse[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where
__D: Deserializer<'de>, [src]
Deserialize this value from the given Serde deserializer. Read more
+impl Serialize for ErrorToResponse[src]
Auto Trait Implementations
impl RefUnwindSafe for ErrorToResponse[src]
impl Send for ErrorToResponse[src]
impl Sync for ErrorToResponse[src]
impl Unpin for ErrorToResponse[src]
impl UnwindSafe for ErrorToResponse[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
diff --git a/mcaptcha/errors/type.PageResult.html b/mcaptcha/errors/type.PageResult.html
index bb89bd92..02b154ab 100644
--- a/mcaptcha/errors/type.PageResult.html
+++ b/mcaptcha/errors/type.PageResult.html
@@ -1,5 +1,5 @@
mcaptcha::errors::PageResult - Rust
Type Definition mcaptcha::errors::PageResult [−][src]
type PageResult<V> = Result<V, PageError>;
+ 
Type Definition mcaptcha::errors::PageResult [−][src]
type PageResult<V> = Result<V, PageError>;
\ No newline at end of file
diff --git a/mcaptcha/errors/type.ServiceResult.html b/mcaptcha/errors/type.ServiceResult.html
index faf6395e..d2ab9804 100644
--- a/mcaptcha/errors/type.ServiceResult.html
+++ b/mcaptcha/errors/type.ServiceResult.html
@@ -1,5 +1,5 @@
mcaptcha::errors::ServiceResult - Rust
Type Definition mcaptcha::errors::ServiceResult [−][src]
type ServiceResult<V> = Result<V, ServiceError>;
+ 
Type Definition mcaptcha::errors::ServiceResult [−][src]
type ServiceResult<V> = Result<V, ServiceError>;
\ No newline at end of file
diff --git a/mcaptcha/macro.ImplErrorable!.html b/mcaptcha/macro.ImplErrorable!.html
deleted file mode 100644
index 43ebf9c7..00000000
--- a/mcaptcha/macro.ImplErrorable!.html
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
-
-
- Redirecting to macro.ImplErrorable.html...
-
-
-
\ No newline at end of file
diff --git a/mcaptcha/macro.ImplErrorable.html b/mcaptcha/macro.ImplErrorable.html
deleted file mode 100644
index ab02626b..00000000
--- a/mcaptcha/macro.ImplErrorable.html
+++ /dev/null
@@ -1,9 +0,0 @@
-mcaptcha::ImplErrorable - Rust
-
-Macro mcaptcha::ImplErrorable [−][src]
-macro_rules! ImplErrorable {
- ($struct:ident) => { ... };
-}
-
-
\ No newline at end of file
diff --git a/mcaptcha/pages/auth/login/struct.login_post.html b/mcaptcha/pages/auth/login/struct.login_post.html
deleted file mode 100644
index 6e12af3b..00000000
--- a/mcaptcha/pages/auth/login/struct.login_post.html
+++ /dev/null
@@ -1,112 +0,0 @@
-mcaptcha::pages::auth::login::login_post - Rust
-
-Struct mcaptcha::pages::auth::login::login_post [−][src]
pub struct login_post;
Trait Implementations
impl HttpServiceFactory for login_post[src]
Auto Trait Implementations
impl RefUnwindSafe for login_post[src]
impl Send for login_post[src]
impl Sync for login_post[src]
impl Unpin for login_post[src]
impl UnwindSafe for login_post[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]
pub fn borrow_mut(&mut self) -> &mut T[src]
Mutably borrows from an owned value. Read more
-impl<T> Conv for T
impl<T> Conv for T
impl<T> FmtForward for T
pub fn fmt_binary(self) -> FmtBinary<Self> where
Self: Binary,
Causes self to use its Binary implementation when Debug-formatted.
-pub fn fmt_display(self) -> FmtDisplay<Self> where
Self: Display,
Causes self to use its Display implementation when
-Debug-formatted. Read more
-pub fn fmt_lower_exp(self) -> FmtLowerExp<Self> where
Self: LowerExp,
Causes self to use its LowerExp implementation when
-Debug-formatted. Read more
-pub fn fmt_lower_hex(self) -> FmtLowerHex<Self> where
Self: LowerHex,
Causes self to use its LowerHex implementation when
-Debug-formatted. Read more
-pub fn fmt_octal(self) -> FmtOctal<Self> where
Self: Octal,
Causes self to use its Octal implementation when Debug-formatted.
-pub fn fmt_pointer(self) -> FmtPointer<Self> where
Self: Pointer,
Causes self to use its Pointer implementation when
-Debug-formatted. Read more
-pub fn fmt_upper_exp(self) -> FmtUpperExp<Self> where
Self: UpperExp,
Causes self to use its UpperExp implementation when
-Debug-formatted. Read more
-pub fn fmt_upper_hex(self) -> FmtUpperHex<Self> where
Self: UpperHex,
Causes self to use its UpperHex implementation when
-Debug-formatted. Read more
-impl<T> From<T> for T[src]
impl<T> Instrument for T[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>[src]
Instruments this type with the provided Span, returning an
-Instrumented wrapper. Read more
-pub fn in_current_span(self) -> Instrumented<Self>[src]
impl<T> Instrument for T[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>[src]
Instruments this type with the provided Span, returning an
-Instrumented wrapper. Read more
-pub fn in_current_span(self) -> Instrumented<Self>[src]
impl<T, U> Into<U> for T where
U: From<T>, [src]
impl<T> Pipe for T where
T: ?Sized,
pub fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes by value. This is generally the method you want to use. Read more
-pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
Borrows self and passes that borrow into the pipe function. Read more
-pub fn pipe_ref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self) -> R
) -> R where
R: 'a,
Mutably borrows self and passes that borrow into the pipe function. Read more
-pub fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R where
Self: Borrow<B>,
B: 'a + ?Sized,
R: 'a,
Borrows self, then passes self.borrow() into the pipe function. Read more
-pub fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R
) -> R where
Self: BorrowMut<B>,
B: 'a + ?Sized,
R: 'a,
Mutably borrows self, then passes self.borrow_mut() into the pipe
-function. Read more
-pub fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R where
Self: AsRef<U>,
U: 'a + ?Sized,
R: 'a,
Borrows self, then passes self.as_ref() into the pipe function.
-pub fn pipe_as_mut<'a, U, R>(
&'a mut self,
func: impl FnOnce(&'a mut U) -> R
) -> R where
Self: AsMut<U>,
U: 'a + ?Sized,
R: 'a,
Mutably borrows self, then passes self.as_mut() into the pipe
-function. Read more
-pub fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Deref<Target = T>,
T: 'a + ?Sized,
R: 'a,
Borrows self, then passes self.deref() into the pipe function.
-pub fn pipe_deref_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: DerefMut<Target = T> + Deref,
T: 'a + ?Sized,
R: 'a,
Mutably borrows self, then passes self.deref_mut() into the pipe
-function. Read more
-impl<T> Pipe for T
pub fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> R
Pipes a value into a function that cannot ordinarily be called in suffix
-position. Read more
-impl<T> PipeAsRef for T
pub fn pipe_as_ref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: AsRef<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in
-suffix position. Read more
-pub fn pipe_as_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: AsMut<T>,
T: 'a,
R: 'a,
Pipes a trait mutable borrow into a function that cannot normally be
-called in suffix position. Read more
-impl<T> PipeBorrow for T
pub fn pipe_borrow<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R where
Self: Borrow<T>,
T: 'a,
R: 'a,
Pipes a trait borrow into a function that cannot normally be called in
-suffix position. Read more
-pub fn pipe_borrow_mut<'a, T, R>(
&'a mut self,
func: impl FnOnce(&'a mut T) -> R
) -> R where
Self: BorrowMut<T>,
T: 'a,
R: 'a,
Pipes a trait mutable borrow into a function that cannot normally be
-called in suffix position. Read more
-impl<T> PipeDeref for T
pub fn pipe_deref<'a, R>(
&'a self,
func: impl FnOnce(&'a Self::Target) -> R
) -> R where
Self: Deref,
R: 'a,
Pipes a dereference into a function that cannot normally be called in
-suffix position. Read more
-pub fn pipe_deref_mut<'a, R>(
&'a mut self,
func: impl FnOnce(&'a mut Self::Target) -> R
) -> R where
Self: DerefMut,
R: 'a,
Pipes a mutable dereference into a function that cannot normally be
-called in suffix position. Read more
-impl<T> PipeRef for T
pub fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> R where
R: 'a,
Pipes a reference into a function that cannot ordinarily be called in
-suffix position. Read more
-pub fn pipe_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> R where
R: 'a,
Pipes a mutable reference into a function that cannot ordinarily be
-called in suffix position. Read more
-impl<T> Same<T> for T
type Output = T
Should always be Self
-impl<T> Tap for T
pub fn tap(self, func: impl FnOnce(&Self)) -> Self
Immutable access to a value. Read more
-pub fn tap_mut(self, func: impl FnOnce(&mut Self)) -> Self
Mutable access to a value. Read more
-pub fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Immutable access to the Borrow<B> of a value. Read more
-pub fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Mutable access to the BorrowMut<B> of a value. Read more
-pub fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Immutable access to the AsRef<R> view of a value. Read more
-pub fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Mutable access to the AsMut<R> view of a value. Read more
-pub fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Immutable access to the Deref::Target of a value. Read more
-pub fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Mutable access to the Deref::Target of a value. Read more
-pub fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
Calls .tap() only in debug builds, and is erased in release builds.
-pub fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
Calls .tap_mut() only in debug builds, and is erased in release
-builds. Read more
-pub fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self where
Self: Borrow<B>,
B: ?Sized,
Calls .tap_borrow() only in debug builds, and is erased in release
-builds. Read more
-pub fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self where
Self: BorrowMut<B>,
B: ?Sized,
Calls .tap_borrow_mut() only in debug builds, and is erased in release
-builds. Read more
-pub fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self where
Self: AsRef<R>,
R: ?Sized,
Calls .tap_ref() only in debug builds, and is erased in release
-builds. Read more
-pub fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self where
Self: AsMut<R>,
R: ?Sized,
Calls .tap_ref_mut() only in debug builds, and is erased in release
-builds. Read more
-pub fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self where
Self: Deref<Target = T>,
T: ?Sized,
Calls .tap_deref() only in debug builds, and is erased in release
-builds. Read more
-pub fn tap_deref_mut_dbg<T>(self, func: impl FnOnce(&mut T)) -> Self where
Self: DerefMut<Target = T> + Deref,
T: ?Sized,
Calls .tap_deref_mut() only in debug builds, and is erased in release
-builds. Read more
-impl<T> Tap for T
pub fn tap<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
Provides immutable access for inspection. Read more
-pub fn tap_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&Self) -> R,
Calls tap in debug builds, and does nothing in release builds.
-pub fn tap_mut<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
Provides mutable access for modification. Read more
-pub fn tap_mut_dbg<F, R>(self, func: F) -> Self where
F: FnOnce(&mut Self) -> R,
Calls tap_mut in debug builds, and does nothing in release builds.
-impl<T, U> TapAsRef<U> for T where
U: ?Sized,
pub fn tap_ref<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Provides immutable access to the reference for inspection.
-pub fn tap_ref_dbg<F, R>(self, func: F) -> Self where
Self: AsRef<T>,
F: FnOnce(&T) -> R,
Calls tap_ref in debug builds, and does nothing in release builds.
-pub fn tap_ref_mut<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the reference for modification.
-pub fn tap_ref_mut_dbg<F, R>(self, func: F) -> Self where
Self: AsMut<T>,
F: FnOnce(&mut T) -> R,
Calls tap_ref_mut in debug builds, and does nothing in release builds.
-impl<T, U> TapBorrow<U> for T where
U: ?Sized,
pub fn tap_borrow<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Provides immutable access to the borrow for inspection. Read more
-pub fn tap_borrow_dbg<F, R>(self, func: F) -> Self where
Self: Borrow<T>,
F: FnOnce(&T) -> R,
Calls tap_borrow in debug builds, and does nothing in release builds.
-pub fn tap_borrow_mut<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Provides mutable access to the borrow for modification.
-pub fn tap_borrow_mut_dbg<F, R>(self, func: F) -> Self where
Self: BorrowMut<T>,
F: FnOnce(&mut T) -> R,
Calls tap_borrow_mut in debug builds, and does nothing in release
-builds. Read more
-impl<T> TapDeref for T
pub fn tap_deref<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Immutably dereferences self for inspection.
-pub fn tap_deref_dbg<F, R>(self, func: F) -> Self where
Self: Deref,
F: FnOnce(&Self::Target) -> R,
Calls tap_deref in debug builds, and does nothing in release builds.
-pub fn tap_deref_mut<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Mutably dereferences self for modification.
-pub fn tap_deref_mut_dbg<F, R>(self, func: F) -> Self where
Self: DerefMut,
F: FnOnce(&mut Self::Target) -> R,
Calls tap_deref_mut in debug builds, and does nothing in release
-builds. Read more
-impl<T> TryConv for T
pub fn try_conv<T>(self) -> Result<T, Self::Error> where
Self: TryInto<T>,
Attempts to convert self into T using TryInto<T>. Read more
-impl<T> TryConv for T
pub fn try_conv<T>(self) -> Result<T, Self::Error> where
Self: TryInto<T>,
Attempts to convert self into a target type. Read more
-impl<T, U> TryFrom<U> for T where
U: Into<T>, [src]
type Error = Infallible
The type returned in the event of a conversion error.
-pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]
Performs the conversion.
-impl<T, U> TryInto<U> for T where
U: TryFrom<T>, [src]
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
-pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]
Performs the conversion.
-impl<V, T> VZip<V> for T where
V: MultiLane<T>,
pub fn vzip(self) -> V
-
\ No newline at end of file
diff --git a/mcaptcha/pages/errors/trait.Errorable.html b/mcaptcha/pages/errors/trait.Errorable.html
deleted file mode 100644
index 986c1f23..00000000
--- a/mcaptcha/pages/errors/trait.Errorable.html
+++ /dev/null
@@ -1,7 +0,0 @@
-mcaptcha::pages::errors::Errorable - Rust
-
-Trait mcaptcha::pages::errors::Errorable [−][src]
pub trait Errorable: TemplateOnce {
- fn get_error_resp<E: ResponseError>(self, e: E) -> HttpResponse;
-}Required methods
fn get_error_resp<E: ResponseError>(self, e: E) -> HttpResponse[src]
Loading content...Implementors
impl Errorable for IndexPage[src]
fn get_error_resp<E>(self, e: E) -> HttpResponse where
E: ResponseError + Display, [src]
Loading content...
-
\ No newline at end of file
diff --git a/search-index.js b/search-index.js
index fba94a82..a360d15a 100644
--- a/search-index.js
+++ b/search-index.js
@@ -1,5 +1,5 @@
var searchIndex = JSON.parse('{\
-"mcaptcha":{"doc":"","i":[[0,"api","mcaptcha","",null,null],[0,"v1","mcaptcha::api","",null,null],[0,"account","mcaptcha::api::v1","",null,null],[0,"delete","mcaptcha::api::v1::account","",null,null],[3,"delete_account","mcaptcha::api::v1::account::delete","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"email","mcaptcha::api::v1::account","",null,null],[3,"Email","mcaptcha::api::v1::account::email","",null,null],[12,"email","","",0,null],[3,"email_exists","","",null,null],[3,"set_email","","update email",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"secret","mcaptcha::api::v1::account","",null,null],[3,"Secret","mcaptcha::api::v1::account::secret","",null,null],[12,"secret","","",1,null],[3,"get_secret","","",null,null],[3,"update_user_secret","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"username","mcaptcha::api::v1::account","",null,null],[3,"username_exists","mcaptcha::api::v1::account::username","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha::api::v1::account","",null,null],[3,"Account","mcaptcha::api::v1::account::routes","",null,null],[12,"delete","","",2,null],[12,"email_exists","","",2,null],[12,"get_secret","","",2,null],[12,"update_email","","",2,null],[12,"update_secret","","",2,null],[12,"username_exists","","",2,null],[11,"new","","",2,[[],["account",3]]],[3,"AccountCheckPayload","mcaptcha::api::v1::account","",null,null],[12,"val","","",3,null],[3,"AccountCheckResp","","",null,null],[12,"exists","","",4,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"auth","mcaptcha::api::v1","",null,null],[0,"routes","mcaptcha::api::v1::auth","",null,null],[3,"Auth","mcaptcha::api::v1::auth::routes","",null,null],[12,"logout","","",5,null],[12,"login","","",5,null],[12,"register","","",5,null],[11,"new","","",5,[[],["auth",3]]],[0,"runners","mcaptcha::api::v1::auth","",null,null],[3,"Register","mcaptcha::api::v1::auth::runners","",null,null],[12,"username","","",6,null],[12,"password","","",6,null],[12,"confirm_password","","",6,null],[12,"email","","",6,null],[3,"Login","","",null,null],[12,"username","","",7,null],[12,"password","","",7,null],[3,"Password","","",null,null],[12,"password","","",8,null],[5,"login_runner","","returns Ok(()) when everything checks out and the user is …",null,[[["appdata",6],["login",3]]]],[5,"register_runner","","",null,[[["register",3],["appdata",6]]]],[5,"services","mcaptcha::api::v1::auth","",null,[[["serviceconfig",3]]]],[3,"register","","",null,null],[3,"login","","",null,null],[3,"signout","","",null,null],[0,"mcaptcha","mcaptcha::api::v1","",null,null],[0,"captcha","mcaptcha::api::v1::mcaptcha","",null,null],[0,"routes","mcaptcha::api::v1::mcaptcha::captcha","",null,null],[3,"MCaptcha","mcaptcha::api::v1::mcaptcha::captcha::routes","",null,null],[12,"delete","","",9,null],[12,"get_token","","",9,null],[12,"update_key","","",9,null],[11,"new","","",9,[[],["mcaptcha",3]]],[5,"services","mcaptcha::api::v1::mcaptcha::captcha","",null,[[["serviceconfig",3]]]],[3,"MCaptchaID","","",null,null],[12,"name","","",10,null],[3,"MCaptchaDetails","","",null,null],[12,"name","","",11,null],[12,"key","","",11,null],[5,"add_mcaptcha_util","","",null,[[["u32",15],["appdata",6],["identity",3],["str",15]]]],[3,"update_token","","",null,null],[5,"update_token_helper","","",null,[[["appdata",6],["str",15]]]],[3,"get_token","","",null,null],[3,"delete_mcaptcha","","",null,null],[0,"duration","mcaptcha::api::v1::mcaptcha","",null,null],[0,"routes","mcaptcha::api::v1::mcaptcha::duration","",null,null],[3,"Duration","mcaptcha::api::v1::mcaptcha::duration::routes","",null,null],[12,"update","","",12,null],[12,"get","","",12,null],[11,"new","","",12,[[],["duration",3]]],[3,"UpdateDuration","mcaptcha::api::v1::mcaptcha::duration","",null,null],[12,"key","","",13,null],[12,"duration","","",13,null],[3,"update_duration","","",null,null],[3,"GetDurationResp","","",null,null],[12,"duration","","",14,null],[3,"GetDuration","","",null,null],[12,"token","","",15,null],[3,"get_duration","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"levels","mcaptcha::api::v1::mcaptcha","",null,null],[0,"routes","mcaptcha::api::v1::mcaptcha::levels","",null,null],[3,"Levels","mcaptcha::api::v1::mcaptcha::levels::routes","",null,null],[12,"add","","",16,null],[12,"delete","","",16,null],[12,"get","","",16,null],[12,"update","","",16,null],[11,"new","","",16,[[],["levels",3]]],[3,"AddLevels","mcaptcha::api::v1::mcaptcha::levels","",null,null],[12,"levels","","",17,null],[12,"duration","","",17,null],[12,"description","","",17,null],[5,"services","","",null,[[["serviceconfig",3]]]],[3,"add_levels","","",null,null],[3,"UpdateLevels","","",null,null],[12,"levels","","",18,null],[12,"key","","name is config_name",18,null],[3,"update_levels","","",null,null],[3,"delete_levels","","",null,null],[3,"get_levels","","",null,null],[3,"Levels","","",null,null],[12,"levels","","",19,null],[3,"I32Levels","","",null,null],[12,"difficulty_factor","","",20,null],[12,"visitor_threshold","","",20,null],[5,"get_levels_util","","",null,[[["appdata",6],["str",15]]]],[5,"get_random","mcaptcha::api::v1::mcaptcha","",null,[[["usize",15]],["string",3]]],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"meta","mcaptcha::api::v1","",null,null],[0,"routes","mcaptcha::api::v1::meta","",null,null],[3,"Meta","mcaptcha::api::v1::meta::routes","",null,null],[12,"build_details","","",21,null],[12,"health","","",21,null],[11,"new","","",21,[[]]],[3,"BuildDetails","mcaptcha::api::v1::meta","",null,null],[12,"version","","",22,null],[12,"git_commit_hash","","",22,null],[3,"BuildDetailsBuilder","","Builder for BuildDetails.",null,null],[12,"version","","",23,null],[12,"git_commit_hash","","",23,null],[11,"version","","",23,[[["str",15]]]],[11,"git_commit_hash","","",23,[[["str",15]]]],[11,"build","","Builds a new BuildDetails.",23,[[],[["result",4],["builddetails",3],["builddetailsbuildererror",4]]]],[4,"BuildDetailsBuilderError","","Error type for BuildDetailsBuilder",null,null],[13,"UninitializedField","","Uninitialized field",24,null],[13,"ValidationError","","Custom validation error",24,null],[3,"build_details","","emmits build details of the bninary",null,null],[3,"Health","","Health check return datatype",null,null],[12,"db","","",25,null],[12,"redis","","",25,null],[3,"HealthBuilder","","Builder for Health.",null,null],[12,"db","","",26,null],[12,"redis","","",26,null],[11,"db","","",26,[[["bool",15]]]],[11,"redis","","",26,[[["bool",15],["option",4]]]],[11,"build","","Builds a new Health.",26,[[],[["result",4],["health",3],["healthbuildererror",4]]]],[4,"HealthBuilderError","","Error type for HealthBuilder",null,null],[13,"UninitializedField","","Uninitialized field",27,null],[13,"ValidationError","","Custom validation error",27,null],[11,"is_redis","","",25,[[["option",4]],["bool",15]]],[3,"health","","checks all components of the system",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"notifications","mcaptcha::api::v1","",null,null],[0,"add","mcaptcha::api::v1::notifications","",null,null],[3,"AddNotification","mcaptcha::api::v1::notifications::add","",null,null],[12,"to","","",28,null],[12,"heading","","",28,null],[12,"message","","",28,null],[3,"add_notification","","route handler that adds a notification message",null,null],[0,"get","mcaptcha::api::v1::notifications","",null,null],[3,"Notification","mcaptcha::api::v1::notifications::get","",null,null],[12,"name","","",29,null],[12,"heading","","",29,null],[12,"message","","",29,null],[12,"received","","",29,null],[12,"id","","",29,null],[3,"NotificationResp","","",null,null],[12,"name","","",30,null],[12,"heading","","",30,null],[12,"message","","",30,null],[12,"received","","",30,null],[12,"id","","",30,null],[3,"get_notification","","route handler that gets all unread notifications",null,null],[0,"mark_read","mcaptcha::api::v1::notifications","",null,null],[3,"MarkReadReq","mcaptcha::api::v1::notifications::mark_read","",null,null],[12,"id","","",31,null],[3,"NotificationResp","","",null,null],[12,"name","","",32,null],[12,"heading","","",32,null],[12,"message","","",32,null],[12,"received","","",32,null],[12,"id","","",32,null],[3,"mark_read","","route handler that marks a notification read",null,null],[0,"routes","mcaptcha::api::v1::notifications","",null,null],[3,"Notifications","mcaptcha::api::v1::notifications::routes","",null,null],[12,"add","","",33,null],[12,"mark_read","","",33,null],[12,"get","","",33,null],[11,"new","","",33,[[],["notifications",3]]],[5,"services","mcaptcha::api::v1::notifications","",null,[[["serviceconfig",3]]]],[0,"pow","mcaptcha::api::v1","",null,null],[0,"get_config","mcaptcha::api::v1::pow","",null,null],[3,"GetConfigPayload","mcaptcha::api::v1::pow::get_config","",null,null],[12,"key","","",34,null],[3,"get_config","","get PoW configuration for an mcaptcha key",null,null],[5,"init_mcaptcha","","Call this when [MCaptcha][libmcaptcha::MCaptcha] is not …",null,[[["appdata",6],["str",15]]]],[0,"verify_pow","mcaptcha::api::v1::pow","PoW Verification module",null,null],[3,"ValidationToken","mcaptcha::api::v1::pow::verify_pow","validation token that clients receive as proof for …",null,null],[12,"token","","",35,null],[3,"verify_pow","","route handler that verifies PoW and issues a solution …",null,null],[0,"verify_token","mcaptcha::api::v1::pow","PoW success token module",null,null],[3,"CaptchaValidateResp","mcaptcha::api::v1::pow::verify_token","",null,null],[12,"valid","","",36,null],[3,"validate_captcha_token","","route hander that validates a PoW solution token",null,null],[0,"routes","mcaptcha::api::v1::pow","",null,null],[3,"PoW","mcaptcha::api::v1::pow::routes","",null,null],[12,"get_config","","",37,null],[12,"verify_pow","","",37,null],[12,"validate_captcha_token","","",37,null],[12,"scope","","",37,null],[11,"new","","",37,[[]]],[5,"services","mcaptcha::api::v1::pow","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha::api::v1","",null,null],[17,"ROUTES","mcaptcha::api::v1::routes","",null,null],[3,"Routes","","",null,null],[12,"auth","","",38,null],[12,"account","","",38,null],[12,"levels","","",38,null],[12,"mcaptcha","","",38,null],[12,"duration","","",38,null],[12,"meta","","",38,null],[12,"pow","","",38,null],[12,"notifications","","",38,null],[11,"new","","",38,[[],["routes",3]]],[5,"services","mcaptcha::api::v1","",null,[[["serviceconfig",3]]]],[0,"data","mcaptcha","",null,null],[3,"Data","mcaptcha::data","",null,null],[12,"db","","",39,null],[12,"creds","","",39,null],[12,"captcha","","",39,null],[4,"SystemGroup","","",null,null],[13,"Embedded","","",40,null],[13,"Redis","","",40,null],[11,"get_pow","","utility function to get difficulty factor of site id and …",40,[[["string",3]]]],[11,"verify_pow","","utility function to verify [Work]",40,[[["work",3]]]],[11,"validate_verification_tokens","","utility function to validate verification tokens",40,[[["verifycaptcharesult",3]]]],[11,"new","","",39,[[]]],[11,"new_system","","",39,[[["addr",3],["addr",3],["mastertrait",8],["save",8]],[["save",8],["mastertrait",8],["system",3]]]],[0,"docs","mcaptcha","",null,null],[0,"routes","mcaptcha::docs","",null,null],[3,"Docs","mcaptcha::docs::routes","",null,null],[12,"home","","",41,null],[12,"spec","","",41,null],[12,"assets","","",41,null],[11,"new","","",41,[[]]],[17,"DOCS","mcaptcha::docs","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[3,"Asset","","",null,null],[11,"get","","",42,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",42,[[]]],[5,"handle_embedded_file","","",null,[[["str",15]],["httpresponse",3]]],[5,"dist","","",null,[[["path",3],["string",3]]]],[5,"spec","","",null,[[]]],[5,"index","","",null,[[]]],[0,"errors","mcaptcha","",null,null],[4,"ServiceError","mcaptcha::errors","",null,null],[13,"InternalServerError","","",43,null],[13,"ClosedForRegistration","","",43,null],[13,"NotAnEmail","","",43,null],[13,"NotAUrl","","",43,null],[13,"WrongPassword","","",43,null],[13,"UsernameNotFound","","",43,null],[13,"ProfainityError","","when the value passed contains profainity",43,null],[13,"BlacklistError","","when the value passed contains blacklisted words see …",43,null],[13,"UsernameCaseMappedError","","when the value passed contains characters not present in …",43,null],[13,"PasswordTooShort","","",43,null],[13,"PasswordTooLong","","",43,null],[13,"PasswordsDontMatch","","",43,null],[13,"UsernameTaken","","when the a username is already taken",43,null],[13,"EmailTaken","","email is already taken",43,null],[13,"TokenNotFound","","when the a token name is already taken token not found",43,null],[13,"CaptchaError","","",43,null],[3,"ErrorToResponse","","",null,null],[12,"error","","",44,null],[6,"ServiceResult","","",null,null],[4,"PageError","","",null,null],[13,"InternalServerError","","",45,null],[13,"ServiceError","","",45,null],[6,"PageResult","","",null,null],[0,"middleware","mcaptcha","",null,null],[0,"auth","mcaptcha::middleware","",null,null],[3,"CheckLogin","mcaptcha::middleware::auth","",null,null],[3,"CheckLoginMiddleware","","",null,null],[12,"service","","",46,null],[0,"pages","mcaptcha","",null,null],[0,"auth","mcaptcha::pages","",null,null],[0,"login","mcaptcha::pages::auth","",null,null],[3,"IndexPage","mcaptcha::pages::auth::login","",null,null],[17,"PAGE","","",null,null],[3,"INDEX","","",null,null],[12,"__private_field","","",47,null],[3,"login","","",null,null],[0,"register","mcaptcha::pages::auth","",null,null],[3,"IndexPage","mcaptcha::pages::auth::register","",null,null],[17,"PAGE","","",null,null],[3,"INDEX","","",null,null],[12,"__private_field","","",48,null],[3,"join","","",null,null],[0,"routes","mcaptcha::pages::auth","",null,null],[3,"Auth","mcaptcha::pages::auth::routes","",null,null],[12,"login","","",49,null],[12,"join","","",49,null],[11,"new","","",49,[[],["auth",3]]],[5,"services","mcaptcha::pages::auth","",null,[[["serviceconfig",3]]]],[0,"errors","mcaptcha::pages","",null,null],[0,"routes","mcaptcha::pages::errors","",null,null],[3,"Errors","mcaptcha::pages::errors::routes","",null,null],[12,"internal_server_error","","",50,null],[12,"unknown_error","","",50,null],[11,"new","","",50,[[]]],[3,"ErrorPage","mcaptcha::pages::errors","",null,null],[12,"title","","",51,null],[12,"message","","",51,null],[17,"PAGE","","",null,null],[11,"new","","",51,[[["str",15]]]],[3,"INTERNAL_SERVER_ERROR_BODY","","",null,null],[12,"__private_field","","",52,null],[3,"UNKNOWN_ERROR_BODY","","",null,null],[12,"__private_field","","",53,null],[5,"error","","",null,[[["usize",15],["path",3]]]],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"panel","mcaptcha::pages","",null,null],[0,"sitekey","mcaptcha::pages::panel","",null,null],[0,"add","mcaptcha::pages::panel::sitekey","",null,null],[17,"PAGE","mcaptcha::pages::panel::sitekey::add","",null,null],[3,"INDEX","","",null,null],[12,"__private_field","","",54,null],[3,"IndexPage","","",null,null],[12,"levels","","",55,null],[12,"form_title","","",55,null],[12,"form_description","","",55,null],[12,"form_duration","","",55,null],[3,"add_sitekey","","",null,null],[0,"list","mcaptcha::pages::panel::sitekey","",null,null],[3,"IndexPage","mcaptcha::pages::panel::sitekey::list","",null,null],[12,"sitekeys","","",56,null],[17,"PAGE","","",null,null],[11,"new","","",56,[[["vec",3],["mcaptchadetails",3]]]],[3,"list_sitekeys","","render a list of all sitekeys that a user has",null,null],[5,"get_list_sitekeys","","utility function to get a list of all sitekeys that a …",null,[[["appdata",6],["identity",3]]]],[6,"SiteKeys","","",null,null],[0,"view","mcaptcha::pages::panel::sitekey","",null,null],[17,"PAGE","mcaptcha::pages::panel::sitekey::view","",null,null],[3,"McaptchaConfig","","",null,null],[12,"config_id","","",57,null],[12,"duration","","",57,null],[12,"name","","",57,null],[3,"Level","","",null,null],[12,"difficulty_factor","","",58,null],[12,"visitor_threshold","","",58,null],[3,"IndexPage","","",null,null],[12,"duration","","",59,null],[12,"name","","",59,null],[12,"key","","",59,null],[12,"levels","","",59,null],[11,"new","","",59,[[["mcaptchaconfig",3],["level",3],["string",3],["vec",3]]]],[3,"view_sitekey","","route handler that renders individual views for sitekeys",null,null],[0,"routes","mcaptcha::pages::panel::sitekey","",null,null],[3,"Sitekey","mcaptcha::pages::panel::sitekey::routes","",null,null],[12,"list","","",60,null],[12,"add","","",60,null],[12,"view","","",60,null],[11,"new","","",60,[[]]],[5,"services","mcaptcha::pages::panel::sitekey","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha::pages::panel","",null,null],[3,"Panel","mcaptcha::pages::panel::routes","",null,null],[12,"home","","",61,null],[12,"sitekey","","",61,null],[11,"new","","",61,[[]]],[3,"IndexPage","mcaptcha::pages::panel","",null,null],[12,"sitekeys","","",62,null],[11,"new","","",62,[[["vec",3],["mcaptchadetails",3]]]],[17,"PAGE","","",null,null],[3,"panel","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha::pages","",null,null],[17,"ROUTES","mcaptcha::pages::routes","",null,null],[3,"Routes","","",null,null],[12,"home","","",63,null],[12,"auth","","",63,null],[12,"panel","","",63,null],[12,"errors","","",63,null],[12,"about","","",63,null],[12,"thanks","","",63,null],[12,"donate","","",63,null],[12,"security","","",63,null],[12,"privacy","","",63,null],[11,"new","","",63,[[],["routes",3]]],[17,"NAME","mcaptcha::pages","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha","",null,null],[4,"Methods","mcaptcha::routes","",null,null],[13,"Get","","GET hander",64,null],[13,"Post","","POST handler",64,null],[13,"ProtectGet","","Protected GET handler",64,null],[13,"ProtectPost","","Protected POST handler",64,null],[0,"settings","mcaptcha","",null,null],[3,"Server","mcaptcha::settings","",null,null],[12,"allow_registration","","",65,null],[12,"port","","",65,null],[12,"domain","","",65,null],[12,"cookie_secret","","",65,null],[12,"ip","","",65,null],[12,"url_prefix","","",65,null],[3,"Captcha","","",null,null],[12,"salt","","",66,null],[12,"gc","","",66,null],[11,"get_ip","","",65,[[],["string",3]]],[3,"DatabaseBuilder","","",null,null],[12,"port","","",67,null],[12,"hostname","","",67,null],[12,"username","","",67,null],[12,"password","","",67,null],[12,"name","","",67,null],[12,"url","","",67,null],[11,"extract_database_url","","",67,[[["url",3]]]],[3,"Database","","",null,null],[12,"url","","",68,null],[12,"pool","","",68,null],[3,"Redis","","",null,null],[12,"url","","",69,null],[12,"pool","","",69,null],[3,"Settings","","",null,null],[12,"debug","","",70,null],[12,"database","","",70,null],[12,"redis","","",70,null],[12,"server","","",70,null],[12,"pow","","",70,null],[12,"source_code","","",70,null],[11,"new","","",70,[[],[["result",4],["configerror",4]]]],[5,"check_url","","",null,[[["config",3]]]],[5,"set_from_database_url","","",null,[[["databasebuilder",3],["config",3]]]],[5,"set_database_url","","",null,[[["config",3]]]],[0,"static_assets","mcaptcha","",null,null],[0,"filemap","mcaptcha::static_assets","",null,null],[3,"FileMap","mcaptcha::static_assets::filemap","",null,null],[12,"files","","",71,null],[11,"new","","",71,[[]]],[11,"get","","",71,[[["str",15]],[["option",4],["str",15]]]],[0,"static_files","mcaptcha::static_assets","",null,null],[3,"Asset","mcaptcha::static_assets::static_files","",null,null],[11,"get","","",72,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",72,[[]]],[5,"handle_assets","","",null,[[["str",15]],["httpresponse",3]]],[3,"static_files","","",null,null],[3,"Favicons","","",null,null],[11,"get","","",73,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",73,[[]]],[5,"handle_favicons","","",null,[[["str",15]],["httpresponse",3]]],[3,"favicons","","",null,null],[5,"services","mcaptcha::static_assets","",null,[[["serviceconfig",3]]]],[0,"stats","mcaptcha","",null,null],[0,"fetch","mcaptcha::stats","",null,null],[3,"Stats","mcaptcha::stats::fetch","",null,null],[12,"config_fetches","","",74,null],[12,"solves","","",74,null],[12,"confirms","","",74,null],[11,"new","","",74,[[["pgpool",6],["str",15]]]],[11,"fetch_config_fetched","","featch PoWConfig fetches",74,[[["pgpool",6],["str",15]]]],[11,"fetch_solve","","featch PoWConfig solves",74,[[["pgpool",6],["str",15]]]],[11,"fetch_confirm","","featch PoWConfig confirms",74,[[["pgpool",6],["str",15]]]],[0,"record","mcaptcha::stats","",null,null],[5,"record_fetch","mcaptcha::stats::record","record PoWConfig fetches",null,[[["pgpool",6],["str",15]]]],[5,"record_solve","","record PoWConfig solves",null,[[["pgpool",6],["str",15]]]],[5,"record_confirm","","record PoWConfig confirms",null,[[["pgpool",6],["str",15]]]],[0,"widget","mcaptcha","",null,null],[0,"routes","mcaptcha::widget","",null,null],[3,"Widget","mcaptcha::widget::routes","",null,null],[12,"verification_widget","","",75,null],[12,"js","","",75,null],[12,"wasm","","",75,null],[11,"new","","",75,[[]]],[17,"WIDGET_ROUTES","mcaptcha::widget","",null,null],[3,"IndexPage","","",null,null],[17,"PAGE","","",null,null],[11,"new","","",76,[[]]],[3,"INDEX_PAGE","","",null,null],[12,"__private_field","","",77,null],[3,"show_widget","","render a client side widget for CAPTCHA verification",null,null],[3,"WidgetAssets","","",null,null],[11,"get","","",78,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",78,[[]]],[5,"handle_widget_assets","","",null,[[["str",15]],["httpresponse",3]]],[3,"widget_assets","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[3,"Data","mcaptcha","",null,null],[12,"db","","",39,null],[12,"creds","","",39,null],[12,"captcha","","",39,null],[17,"V1_API_ROUTES","","",null,null],[17,"DOCS","","",null,null],[17,"PAGES","","",null,null],[3,"Settings","","",null,null],[12,"debug","","",70,null],[12,"database","","",70,null],[12,"redis","","",70,null],[12,"server","","",70,null],[12,"pow","","",70,null],[12,"source_code","","",70,null],[17,"WIDGET_ROUTES","","",null,null],[3,"CheckLogin","","",null,null],[3,"SETTINGS","","",null,null],[12,"__private_field","","",79,null],[3,"FILES","","",null,null],[12,"__private_field","","",80,null],[3,"JS","","",null,null],[12,"__private_field","","",81,null],[3,"CSS","","",null,null],[12,"__private_field","","",82,null],[3,"MOBILE_CSS","","",null,null],[12,"__private_field","","",83,null],[3,"VERIFICATIN_WIDGET_JS","","",null,null],[12,"__private_field","","",84,null],[3,"VERIFICATIN_WIDGET_CSS","","",null,null],[12,"__private_field","","",85,null],[3,"SOURCE_FILES_OF_INSTANCE","","points to source files matching build commit",null,null],[12,"__private_field","","",86,null],[7,"OPEN_API_DOC","","",null,null],[7,"GIT_COMMIT_HASH","","",null,null],[7,"VERSION","","",null,null],[7,"PKG_NAME","","",null,null],[7,"PKG_DESCRIPTION","","",null,null],[7,"PKG_HOMEPAGE","","",null,null],[17,"CACHE_AGE","","",null,null],[6,"AppData","","",null,null],[5,"main","","",null,[[],["result",6]]],[5,"get_json_err","","",null,[[],["jsonconfig",3]]],[5,"get_identity_service","","",null,[[],[["identityservice",3],["cookieidentitypolicy",3]]]],[14,"define_resource","","Defines resoures for [Methods]",null,null],[11,"from","mcaptcha::api::v1::account::delete","",87,[[]]],[11,"into","","",87,[[]]],[11,"borrow","","",87,[[]]],[11,"borrow_mut","","",87,[[]]],[11,"try_from","","",87,[[],["result",4]]],[11,"try_into","","",87,[[],["result",4]]],[11,"type_id","","",87,[[],["typeid",3]]],[11,"vzip","","",87,[[]]],[11,"from","mcaptcha::api::v1::account::email","",0,[[]]],[11,"into","","",0,[[]]],[11,"to_owned","","",0,[[]]],[11,"clone_into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"vzip","","",0,[[]]],[11,"from","","",88,[[]]],[11,"into","","",88,[[]]],[11,"borrow","","",88,[[]]],[11,"borrow_mut","","",88,[[]]],[11,"try_from","","",88,[[],["result",4]]],[11,"try_into","","",88,[[],["result",4]]],[11,"type_id","","",88,[[],["typeid",3]]],[11,"vzip","","",88,[[]]],[11,"from","","",89,[[]]],[11,"into","","",89,[[]]],[11,"borrow","","",89,[[]]],[11,"borrow_mut","","",89,[[]]],[11,"try_from","","",89,[[],["result",4]]],[11,"try_into","","",89,[[],["result",4]]],[11,"type_id","","",89,[[],["typeid",3]]],[11,"vzip","","",89,[[]]],[11,"from","mcaptcha::api::v1::account::secret","",1,[[]]],[11,"into","","",1,[[]]],[11,"to_owned","","",1,[[]]],[11,"clone_into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"vzip","","",1,[[]]],[11,"from","","",90,[[]]],[11,"into","","",90,[[]]],[11,"borrow","","",90,[[]]],[11,"borrow_mut","","",90,[[]]],[11,"try_from","","",90,[[],["result",4]]],[11,"try_into","","",90,[[],["result",4]]],[11,"type_id","","",90,[[],["typeid",3]]],[11,"vzip","","",90,[[]]],[11,"from","","",91,[[]]],[11,"into","","",91,[[]]],[11,"borrow","","",91,[[]]],[11,"borrow_mut","","",91,[[]]],[11,"try_from","","",91,[[],["result",4]]],[11,"try_into","","",91,[[],["result",4]]],[11,"type_id","","",91,[[],["typeid",3]]],[11,"vzip","","",91,[[]]],[11,"from","mcaptcha::api::v1::account::username","",92,[[]]],[11,"into","","",92,[[]]],[11,"borrow","","",92,[[]]],[11,"borrow_mut","","",92,[[]]],[11,"try_from","","",92,[[],["result",4]]],[11,"try_into","","",92,[[],["result",4]]],[11,"type_id","","",92,[[],["typeid",3]]],[11,"vzip","","",92,[[]]],[11,"from","mcaptcha::api::v1::account::routes","",2,[[]]],[11,"into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"vzip","","",2,[[]]],[11,"from","mcaptcha::api::v1::account","",3,[[]]],[11,"into","","",3,[[]]],[11,"to_owned","","",3,[[]]],[11,"clone_into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"vzip","","",3,[[]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"vzip","","",4,[[]]],[11,"from","mcaptcha::api::v1::auth::routes","",5,[[]]],[11,"into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"vzip","","",5,[[]]],[11,"from","mcaptcha::api::v1::auth::runners","",6,[[]]],[11,"into","","",6,[[]]],[11,"to_owned","","",6,[[]]],[11,"clone_into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"vzip","","",6,[[]]],[11,"from","","",7,[[]]],[11,"into","","",7,[[]]],[11,"to_owned","","",7,[[]]],[11,"clone_into","","",7,[[]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"vzip","","",7,[[]]],[11,"from","","",8,[[]]],[11,"into","","",8,[[]]],[11,"to_owned","","",8,[[]]],[11,"clone_into","","",8,[[]]],[11,"borrow","","",8,[[]]],[11,"borrow_mut","","",8,[[]]],[11,"try_from","","",8,[[],["result",4]]],[11,"try_into","","",8,[[],["result",4]]],[11,"type_id","","",8,[[],["typeid",3]]],[11,"vzip","","",8,[[]]],[11,"from","mcaptcha::api::v1::auth","",93,[[]]],[11,"into","","",93,[[]]],[11,"borrow","","",93,[[]]],[11,"borrow_mut","","",93,[[]]],[11,"try_from","","",93,[[],["result",4]]],[11,"try_into","","",93,[[],["result",4]]],[11,"type_id","","",93,[[],["typeid",3]]],[11,"vzip","","",93,[[]]],[11,"from","","",94,[[]]],[11,"into","","",94,[[]]],[11,"borrow","","",94,[[]]],[11,"borrow_mut","","",94,[[]]],[11,"try_from","","",94,[[],["result",4]]],[11,"try_into","","",94,[[],["result",4]]],[11,"type_id","","",94,[[],["typeid",3]]],[11,"vzip","","",94,[[]]],[11,"from","","",95,[[]]],[11,"into","","",95,[[]]],[11,"borrow","","",95,[[]]],[11,"borrow_mut","","",95,[[]]],[11,"try_from","","",95,[[],["result",4]]],[11,"try_into","","",95,[[],["result",4]]],[11,"type_id","","",95,[[],["typeid",3]]],[11,"vzip","","",95,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::captcha::routes","",9,[[]]],[11,"into","","",9,[[]]],[11,"borrow","","",9,[[]]],[11,"borrow_mut","","",9,[[]]],[11,"try_from","","",9,[[],["result",4]]],[11,"try_into","","",9,[[],["result",4]]],[11,"type_id","","",9,[[],["typeid",3]]],[11,"vzip","","",9,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::captcha","",10,[[]]],[11,"into","","",10,[[]]],[11,"to_owned","","",10,[[]]],[11,"clone_into","","",10,[[]]],[11,"borrow","","",10,[[]]],[11,"borrow_mut","","",10,[[]]],[11,"try_from","","",10,[[],["result",4]]],[11,"try_into","","",10,[[],["result",4]]],[11,"type_id","","",10,[[],["typeid",3]]],[11,"vzip","","",10,[[]]],[11,"from","","",11,[[]]],[11,"into","","",11,[[]]],[11,"to_owned","","",11,[[]]],[11,"clone_into","","",11,[[]]],[11,"borrow","","",11,[[]]],[11,"borrow_mut","","",11,[[]]],[11,"try_from","","",11,[[],["result",4]]],[11,"try_into","","",11,[[],["result",4]]],[11,"type_id","","",11,[[],["typeid",3]]],[11,"vzip","","",11,[[]]],[11,"from","","",96,[[]]],[11,"into","","",96,[[]]],[11,"borrow","","",96,[[]]],[11,"borrow_mut","","",96,[[]]],[11,"try_from","","",96,[[],["result",4]]],[11,"try_into","","",96,[[],["result",4]]],[11,"type_id","","",96,[[],["typeid",3]]],[11,"vzip","","",96,[[]]],[11,"from","","",97,[[]]],[11,"into","","",97,[[]]],[11,"borrow","","",97,[[]]],[11,"borrow_mut","","",97,[[]]],[11,"try_from","","",97,[[],["result",4]]],[11,"try_into","","",97,[[],["result",4]]],[11,"type_id","","",97,[[],["typeid",3]]],[11,"vzip","","",97,[[]]],[11,"from","","",98,[[]]],[11,"into","","",98,[[]]],[11,"borrow","","",98,[[]]],[11,"borrow_mut","","",98,[[]]],[11,"try_from","","",98,[[],["result",4]]],[11,"try_into","","",98,[[],["result",4]]],[11,"type_id","","",98,[[],["typeid",3]]],[11,"vzip","","",98,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::duration::routes","",12,[[]]],[11,"into","","",12,[[]]],[11,"borrow","","",12,[[]]],[11,"borrow_mut","","",12,[[]]],[11,"try_from","","",12,[[],["result",4]]],[11,"try_into","","",12,[[],["result",4]]],[11,"type_id","","",12,[[],["typeid",3]]],[11,"vzip","","",12,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::duration","",13,[[]]],[11,"into","","",13,[[]]],[11,"borrow","","",13,[[]]],[11,"borrow_mut","","",13,[[]]],[11,"try_from","","",13,[[],["result",4]]],[11,"try_into","","",13,[[],["result",4]]],[11,"type_id","","",13,[[],["typeid",3]]],[11,"vzip","","",13,[[]]],[11,"from","","",99,[[]]],[11,"into","","",99,[[]]],[11,"borrow","","",99,[[]]],[11,"borrow_mut","","",99,[[]]],[11,"try_from","","",99,[[],["result",4]]],[11,"try_into","","",99,[[],["result",4]]],[11,"type_id","","",99,[[],["typeid",3]]],[11,"vzip","","",99,[[]]],[11,"from","","",14,[[]]],[11,"into","","",14,[[]]],[11,"borrow","","",14,[[]]],[11,"borrow_mut","","",14,[[]]],[11,"try_from","","",14,[[],["result",4]]],[11,"try_into","","",14,[[],["result",4]]],[11,"type_id","","",14,[[],["typeid",3]]],[11,"vzip","","",14,[[]]],[11,"from","","",15,[[]]],[11,"into","","",15,[[]]],[11,"borrow","","",15,[[]]],[11,"borrow_mut","","",15,[[]]],[11,"try_from","","",15,[[],["result",4]]],[11,"try_into","","",15,[[],["result",4]]],[11,"type_id","","",15,[[],["typeid",3]]],[11,"vzip","","",15,[[]]],[11,"from","","",100,[[]]],[11,"into","","",100,[[]]],[11,"borrow","","",100,[[]]],[11,"borrow_mut","","",100,[[]]],[11,"try_from","","",100,[[],["result",4]]],[11,"try_into","","",100,[[],["result",4]]],[11,"type_id","","",100,[[],["typeid",3]]],[11,"vzip","","",100,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::levels::routes","",16,[[]]],[11,"into","","",16,[[]]],[11,"borrow","","",16,[[]]],[11,"borrow_mut","","",16,[[]]],[11,"try_from","","",16,[[],["result",4]]],[11,"try_into","","",16,[[],["result",4]]],[11,"type_id","","",16,[[],["typeid",3]]],[11,"vzip","","",16,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::levels","",17,[[]]],[11,"into","","",17,[[]]],[11,"borrow","","",17,[[]]],[11,"borrow_mut","","",17,[[]]],[11,"try_from","","",17,[[],["result",4]]],[11,"try_into","","",17,[[],["result",4]]],[11,"type_id","","",17,[[],["typeid",3]]],[11,"vzip","","",17,[[]]],[11,"from","","",101,[[]]],[11,"into","","",101,[[]]],[11,"borrow","","",101,[[]]],[11,"borrow_mut","","",101,[[]]],[11,"try_from","","",101,[[],["result",4]]],[11,"try_into","","",101,[[],["result",4]]],[11,"type_id","","",101,[[],["typeid",3]]],[11,"vzip","","",101,[[]]],[11,"from","","",18,[[]]],[11,"into","","",18,[[]]],[11,"borrow","","",18,[[]]],[11,"borrow_mut","","",18,[[]]],[11,"try_from","","",18,[[],["result",4]]],[11,"try_into","","",18,[[],["result",4]]],[11,"type_id","","",18,[[],["typeid",3]]],[11,"vzip","","",18,[[]]],[11,"from","","",102,[[]]],[11,"into","","",102,[[]]],[11,"borrow","","",102,[[]]],[11,"borrow_mut","","",102,[[]]],[11,"try_from","","",102,[[],["result",4]]],[11,"try_into","","",102,[[],["result",4]]],[11,"type_id","","",102,[[],["typeid",3]]],[11,"vzip","","",102,[[]]],[11,"from","","",103,[[]]],[11,"into","","",103,[[]]],[11,"borrow","","",103,[[]]],[11,"borrow_mut","","",103,[[]]],[11,"try_from","","",103,[[],["result",4]]],[11,"try_into","","",103,[[],["result",4]]],[11,"type_id","","",103,[[],["typeid",3]]],[11,"vzip","","",103,[[]]],[11,"from","","",104,[[]]],[11,"into","","",104,[[]]],[11,"borrow","","",104,[[]]],[11,"borrow_mut","","",104,[[]]],[11,"try_from","","",104,[[],["result",4]]],[11,"try_into","","",104,[[],["result",4]]],[11,"type_id","","",104,[[],["typeid",3]]],[11,"vzip","","",104,[[]]],[11,"from","","",19,[[]]],[11,"into","","",19,[[]]],[11,"to_owned","","",19,[[]]],[11,"clone_into","","",19,[[]]],[11,"borrow","","",19,[[]]],[11,"borrow_mut","","",19,[[]]],[11,"try_from","","",19,[[],["result",4]]],[11,"try_into","","",19,[[],["result",4]]],[11,"type_id","","",19,[[],["typeid",3]]],[11,"vzip","","",19,[[]]],[11,"from","","",20,[[]]],[11,"into","","",20,[[]]],[11,"to_owned","","",20,[[]]],[11,"clone_into","","",20,[[]]],[11,"borrow","","",20,[[]]],[11,"borrow_mut","","",20,[[]]],[11,"try_from","","",20,[[],["result",4]]],[11,"try_into","","",20,[[],["result",4]]],[11,"type_id","","",20,[[],["typeid",3]]],[11,"vzip","","",20,[[]]],[11,"from","mcaptcha::api::v1::meta::routes","",21,[[]]],[11,"into","","",21,[[]]],[11,"borrow","","",21,[[]]],[11,"borrow_mut","","",21,[[]]],[11,"try_from","","",21,[[],["result",4]]],[11,"try_into","","",21,[[],["result",4]]],[11,"type_id","","",21,[[],["typeid",3]]],[11,"vzip","","",21,[[]]],[11,"from","mcaptcha::api::v1::meta","",22,[[]]],[11,"into","","",22,[[]]],[11,"to_owned","","",22,[[]]],[11,"clone_into","","",22,[[]]],[11,"borrow","","",22,[[]]],[11,"borrow_mut","","",22,[[]]],[11,"try_from","","",22,[[],["result",4]]],[11,"try_into","","",22,[[],["result",4]]],[11,"type_id","","",22,[[],["typeid",3]]],[11,"vzip","","",22,[[]]],[11,"from","","",23,[[]]],[11,"into","","",23,[[]]],[11,"to_owned","","",23,[[]]],[11,"clone_into","","",23,[[]]],[11,"borrow","","",23,[[]]],[11,"borrow_mut","","",23,[[]]],[11,"try_from","","",23,[[],["result",4]]],[11,"try_into","","",23,[[],["result",4]]],[11,"type_id","","",23,[[],["typeid",3]]],[11,"vzip","","",23,[[]]],[11,"from","","",24,[[]]],[11,"into","","",24,[[]]],[11,"to_string","","",24,[[],["string",3]]],[11,"borrow","","",24,[[]]],[11,"borrow_mut","","",24,[[]]],[11,"try_from","","",24,[[],["result",4]]],[11,"try_into","","",24,[[],["result",4]]],[11,"type_id","","",24,[[],["typeid",3]]],[11,"vzip","","",24,[[]]],[11,"from","","",105,[[]]],[11,"into","","",105,[[]]],[11,"borrow","","",105,[[]]],[11,"borrow_mut","","",105,[[]]],[11,"try_from","","",105,[[],["result",4]]],[11,"try_into","","",105,[[],["result",4]]],[11,"type_id","","",105,[[],["typeid",3]]],[11,"vzip","","",105,[[]]],[11,"from","","",25,[[]]],[11,"into","","",25,[[]]],[11,"to_owned","","",25,[[]]],[11,"clone_into","","",25,[[]]],[11,"borrow","","",25,[[]]],[11,"borrow_mut","","",25,[[]]],[11,"try_from","","",25,[[],["result",4]]],[11,"try_into","","",25,[[],["result",4]]],[11,"type_id","","",25,[[],["typeid",3]]],[11,"vzip","","",25,[[]]],[11,"from","","",26,[[]]],[11,"into","","",26,[[]]],[11,"to_owned","","",26,[[]]],[11,"clone_into","","",26,[[]]],[11,"borrow","","",26,[[]]],[11,"borrow_mut","","",26,[[]]],[11,"try_from","","",26,[[],["result",4]]],[11,"try_into","","",26,[[],["result",4]]],[11,"type_id","","",26,[[],["typeid",3]]],[11,"vzip","","",26,[[]]],[11,"from","","",27,[[]]],[11,"into","","",27,[[]]],[11,"to_string","","",27,[[],["string",3]]],[11,"borrow","","",27,[[]]],[11,"borrow_mut","","",27,[[]]],[11,"try_from","","",27,[[],["result",4]]],[11,"try_into","","",27,[[],["result",4]]],[11,"type_id","","",27,[[],["typeid",3]]],[11,"vzip","","",27,[[]]],[11,"from","","",106,[[]]],[11,"into","","",106,[[]]],[11,"borrow","","",106,[[]]],[11,"borrow_mut","","",106,[[]]],[11,"try_from","","",106,[[],["result",4]]],[11,"try_into","","",106,[[],["result",4]]],[11,"type_id","","",106,[[],["typeid",3]]],[11,"vzip","","",106,[[]]],[11,"from","mcaptcha::api::v1::notifications::add","",28,[[]]],[11,"into","","",28,[[]]],[11,"borrow","","",28,[[]]],[11,"borrow_mut","","",28,[[]]],[11,"try_from","","",28,[[],["result",4]]],[11,"try_into","","",28,[[],["result",4]]],[11,"type_id","","",28,[[],["typeid",3]]],[11,"vzip","","",28,[[]]],[11,"from","","",107,[[]]],[11,"into","","",107,[[]]],[11,"borrow","","",107,[[]]],[11,"borrow_mut","","",107,[[]]],[11,"try_from","","",107,[[],["result",4]]],[11,"try_into","","",107,[[],["result",4]]],[11,"type_id","","",107,[[],["typeid",3]]],[11,"vzip","","",107,[[]]],[11,"from","mcaptcha::api::v1::notifications::get","",29,[[]]],[11,"into","","",29,[[]]],[11,"borrow","","",29,[[]]],[11,"borrow_mut","","",29,[[]]],[11,"try_from","","",29,[[],["result",4]]],[11,"try_into","","",29,[[],["result",4]]],[11,"type_id","","",29,[[],["typeid",3]]],[11,"vzip","","",29,[[]]],[11,"from","","",30,[[]]],[11,"into","","",30,[[]]],[11,"borrow","","",30,[[]]],[11,"borrow_mut","","",30,[[]]],[11,"try_from","","",30,[[],["result",4]]],[11,"try_into","","",30,[[],["result",4]]],[11,"type_id","","",30,[[],["typeid",3]]],[11,"vzip","","",30,[[]]],[11,"from","","",108,[[]]],[11,"into","","",108,[[]]],[11,"borrow","","",108,[[]]],[11,"borrow_mut","","",108,[[]]],[11,"try_from","","",108,[[],["result",4]]],[11,"try_into","","",108,[[],["result",4]]],[11,"type_id","","",108,[[],["typeid",3]]],[11,"vzip","","",108,[[]]],[11,"from","mcaptcha::api::v1::notifications::mark_read","",31,[[]]],[11,"into","","",31,[[]]],[11,"borrow","","",31,[[]]],[11,"borrow_mut","","",31,[[]]],[11,"try_from","","",31,[[],["result",4]]],[11,"try_into","","",31,[[],["result",4]]],[11,"type_id","","",31,[[],["typeid",3]]],[11,"vzip","","",31,[[]]],[11,"from","","",32,[[]]],[11,"into","","",32,[[]]],[11,"borrow","","",32,[[]]],[11,"borrow_mut","","",32,[[]]],[11,"try_from","","",32,[[],["result",4]]],[11,"try_into","","",32,[[],["result",4]]],[11,"type_id","","",32,[[],["typeid",3]]],[11,"vzip","","",32,[[]]],[11,"from","","",109,[[]]],[11,"into","","",109,[[]]],[11,"borrow","","",109,[[]]],[11,"borrow_mut","","",109,[[]]],[11,"try_from","","",109,[[],["result",4]]],[11,"try_into","","",109,[[],["result",4]]],[11,"type_id","","",109,[[],["typeid",3]]],[11,"vzip","","",109,[[]]],[11,"from","mcaptcha::api::v1::notifications::routes","",33,[[]]],[11,"into","","",33,[[]]],[11,"borrow","","",33,[[]]],[11,"borrow_mut","","",33,[[]]],[11,"try_from","","",33,[[],["result",4]]],[11,"try_into","","",33,[[],["result",4]]],[11,"type_id","","",33,[[],["typeid",3]]],[11,"vzip","","",33,[[]]],[11,"from","mcaptcha::api::v1::pow::get_config","",34,[[]]],[11,"into","","",34,[[]]],[11,"to_owned","","",34,[[]]],[11,"clone_into","","",34,[[]]],[11,"borrow","","",34,[[]]],[11,"borrow_mut","","",34,[[]]],[11,"try_from","","",34,[[],["result",4]]],[11,"try_into","","",34,[[],["result",4]]],[11,"type_id","","",34,[[],["typeid",3]]],[11,"vzip","","",34,[[]]],[11,"from","","",110,[[]]],[11,"into","","",110,[[]]],[11,"borrow","","",110,[[]]],[11,"borrow_mut","","",110,[[]]],[11,"try_from","","",110,[[],["result",4]]],[11,"try_into","","",110,[[],["result",4]]],[11,"type_id","","",110,[[],["typeid",3]]],[11,"vzip","","",110,[[]]],[11,"from","mcaptcha::api::v1::pow::verify_pow","",35,[[]]],[11,"into","","",35,[[]]],[11,"to_owned","","",35,[[]]],[11,"clone_into","","",35,[[]]],[11,"borrow","","",35,[[]]],[11,"borrow_mut","","",35,[[]]],[11,"try_from","","",35,[[],["result",4]]],[11,"try_into","","",35,[[],["result",4]]],[11,"type_id","","",35,[[],["typeid",3]]],[11,"vzip","","",35,[[]]],[11,"from","","",111,[[]]],[11,"into","","",111,[[]]],[11,"borrow","","",111,[[]]],[11,"borrow_mut","","",111,[[]]],[11,"try_from","","",111,[[],["result",4]]],[11,"try_into","","",111,[[],["result",4]]],[11,"type_id","","",111,[[],["typeid",3]]],[11,"vzip","","",111,[[]]],[11,"from","mcaptcha::api::v1::pow::verify_token","",36,[[]]],[11,"into","","",36,[[]]],[11,"to_owned","","",36,[[]]],[11,"clone_into","","",36,[[]]],[11,"borrow","","",36,[[]]],[11,"borrow_mut","","",36,[[]]],[11,"try_from","","",36,[[],["result",4]]],[11,"try_into","","",36,[[],["result",4]]],[11,"type_id","","",36,[[],["typeid",3]]],[11,"vzip","","",36,[[]]],[11,"from","","",112,[[]]],[11,"into","","",112,[[]]],[11,"borrow","","",112,[[]]],[11,"borrow_mut","","",112,[[]]],[11,"try_from","","",112,[[],["result",4]]],[11,"try_into","","",112,[[],["result",4]]],[11,"type_id","","",112,[[],["typeid",3]]],[11,"vzip","","",112,[[]]],[11,"from","mcaptcha::api::v1::pow::routes","",37,[[]]],[11,"into","","",37,[[]]],[11,"borrow","","",37,[[]]],[11,"borrow_mut","","",37,[[]]],[11,"try_from","","",37,[[],["result",4]]],[11,"try_into","","",37,[[],["result",4]]],[11,"type_id","","",37,[[],["typeid",3]]],[11,"vzip","","",37,[[]]],[11,"from","mcaptcha::api::v1::routes","",38,[[]]],[11,"into","","",38,[[]]],[11,"borrow","","",38,[[]]],[11,"borrow_mut","","",38,[[]]],[11,"try_from","","",38,[[],["result",4]]],[11,"try_into","","",38,[[],["result",4]]],[11,"type_id","","",38,[[],["typeid",3]]],[11,"vzip","","",38,[[]]],[11,"from","mcaptcha::data","",39,[[]]],[11,"into","","",39,[[]]],[11,"borrow","","",39,[[]]],[11,"borrow_mut","","",39,[[]]],[11,"try_from","","",39,[[],["result",4]]],[11,"try_into","","",39,[[],["result",4]]],[11,"type_id","","",39,[[],["typeid",3]]],[11,"vzip","","",39,[[]]],[11,"from","","",40,[[]]],[11,"into","","",40,[[]]],[11,"borrow","","",40,[[]]],[11,"borrow_mut","","",40,[[]]],[11,"try_from","","",40,[[],["result",4]]],[11,"try_into","","",40,[[],["result",4]]],[11,"type_id","","",40,[[],["typeid",3]]],[11,"vzip","","",40,[[]]],[11,"from","mcaptcha::docs::routes","",41,[[]]],[11,"into","","",41,[[]]],[11,"borrow","","",41,[[]]],[11,"borrow_mut","","",41,[[]]],[11,"try_from","","",41,[[],["result",4]]],[11,"try_into","","",41,[[],["result",4]]],[11,"type_id","","",41,[[],["typeid",3]]],[11,"vzip","","",41,[[]]],[11,"from","mcaptcha::docs","",42,[[]]],[11,"into","","",42,[[]]],[11,"borrow","","",42,[[]]],[11,"borrow_mut","","",42,[[]]],[11,"try_from","","",42,[[],["result",4]]],[11,"try_into","","",42,[[],["result",4]]],[11,"type_id","","",42,[[],["typeid",3]]],[11,"vzip","","",42,[[]]],[11,"from","mcaptcha::errors","",43,[[]]],[11,"into","","",43,[[]]],[11,"to_string","","",43,[[],["string",3]]],[11,"borrow","","",43,[[]]],[11,"borrow_mut","","",43,[[]]],[11,"try_from","","",43,[[],["result",4]]],[11,"try_into","","",43,[[],["result",4]]],[11,"type_id","","",43,[[],["typeid",3]]],[11,"vzip","","",43,[[]]],[11,"from","","",44,[[]]],[11,"into","","",44,[[]]],[11,"borrow","","",44,[[]]],[11,"borrow_mut","","",44,[[]]],[11,"try_from","","",44,[[],["result",4]]],[11,"try_into","","",44,[[],["result",4]]],[11,"type_id","","",44,[[],["typeid",3]]],[11,"vzip","","",44,[[]]],[11,"from","","",45,[[]]],[11,"into","","",45,[[]]],[11,"to_string","","",45,[[],["string",3]]],[11,"borrow","","",45,[[]]],[11,"borrow_mut","","",45,[[]]],[11,"try_from","","",45,[[],["result",4]]],[11,"try_into","","",45,[[],["result",4]]],[11,"type_id","","",45,[[],["typeid",3]]],[11,"vzip","","",45,[[]]],[11,"from","mcaptcha::middleware::auth","",113,[[]]],[11,"into","","",113,[[]]],[11,"borrow","","",113,[[]]],[11,"borrow_mut","","",113,[[]]],[11,"try_from","","",113,[[],["result",4]]],[11,"try_into","","",113,[[],["result",4]]],[11,"type_id","","",113,[[],["typeid",3]]],[11,"vzip","","",113,[[]]],[11,"from","","",46,[[]]],[11,"into","","",46,[[]]],[11,"borrow","","",46,[[]]],[11,"borrow_mut","","",46,[[]]],[11,"try_from","","",46,[[],["result",4]]],[11,"try_into","","",46,[[],["result",4]]],[11,"type_id","","",46,[[],["typeid",3]]],[11,"into_service","","",46,[[]]],[11,"vzip","","",46,[[]]],[11,"from","mcaptcha::pages::auth::login","",114,[[]]],[11,"into","","",114,[[]]],[11,"to_owned","","",114,[[]]],[11,"clone_into","","",114,[[]]],[11,"borrow","","",114,[[]]],[11,"borrow_mut","","",114,[[]]],[11,"try_from","","",114,[[],["result",4]]],[11,"try_into","","",114,[[],["result",4]]],[11,"type_id","","",114,[[],["typeid",3]]],[11,"vzip","","",114,[[]]],[11,"from","","",47,[[]]],[11,"into","","",47,[[]]],[11,"borrow","","",47,[[]]],[11,"borrow_mut","","",47,[[]]],[11,"try_from","","",47,[[],["result",4]]],[11,"try_into","","",47,[[],["result",4]]],[11,"type_id","","",47,[[],["typeid",3]]],[11,"vzip","","",47,[[]]],[11,"from","","",115,[[]]],[11,"into","","",115,[[]]],[11,"borrow","","",115,[[]]],[11,"borrow_mut","","",115,[[]]],[11,"try_from","","",115,[[],["result",4]]],[11,"try_into","","",115,[[],["result",4]]],[11,"type_id","","",115,[[],["typeid",3]]],[11,"vzip","","",115,[[]]],[11,"from","mcaptcha::pages::auth::register","",116,[[]]],[11,"into","","",116,[[]]],[11,"to_owned","","",116,[[]]],[11,"clone_into","","",116,[[]]],[11,"borrow","","",116,[[]]],[11,"borrow_mut","","",116,[[]]],[11,"try_from","","",116,[[],["result",4]]],[11,"try_into","","",116,[[],["result",4]]],[11,"type_id","","",116,[[],["typeid",3]]],[11,"vzip","","",116,[[]]],[11,"from","","",48,[[]]],[11,"into","","",48,[[]]],[11,"borrow","","",48,[[]]],[11,"borrow_mut","","",48,[[]]],[11,"try_from","","",48,[[],["result",4]]],[11,"try_into","","",48,[[],["result",4]]],[11,"type_id","","",48,[[],["typeid",3]]],[11,"vzip","","",48,[[]]],[11,"from","","",117,[[]]],[11,"into","","",117,[[]]],[11,"borrow","","",117,[[]]],[11,"borrow_mut","","",117,[[]]],[11,"try_from","","",117,[[],["result",4]]],[11,"try_into","","",117,[[],["result",4]]],[11,"type_id","","",117,[[],["typeid",3]]],[11,"vzip","","",117,[[]]],[11,"from","mcaptcha::pages::auth::routes","",49,[[]]],[11,"into","","",49,[[]]],[11,"borrow","","",49,[[]]],[11,"borrow_mut","","",49,[[]]],[11,"try_from","","",49,[[],["result",4]]],[11,"try_into","","",49,[[],["result",4]]],[11,"type_id","","",49,[[],["typeid",3]]],[11,"vzip","","",49,[[]]],[11,"from","mcaptcha::pages::errors::routes","",50,[[]]],[11,"into","","",50,[[]]],[11,"borrow","","",50,[[]]],[11,"borrow_mut","","",50,[[]]],[11,"try_from","","",50,[[],["result",4]]],[11,"try_into","","",50,[[],["result",4]]],[11,"type_id","","",50,[[],["typeid",3]]],[11,"vzip","","",50,[[]]],[11,"from","mcaptcha::pages::errors","",51,[[]]],[11,"into","","",51,[[]]],[11,"to_owned","","",51,[[]]],[11,"clone_into","","",51,[[]]],[11,"borrow","","",51,[[]]],[11,"borrow_mut","","",51,[[]]],[11,"try_from","","",51,[[],["result",4]]],[11,"try_into","","",51,[[],["result",4]]],[11,"type_id","","",51,[[],["typeid",3]]],[11,"vzip","","",51,[[]]],[11,"from","","",52,[[]]],[11,"into","","",52,[[]]],[11,"borrow","","",52,[[]]],[11,"borrow_mut","","",52,[[]]],[11,"try_from","","",52,[[],["result",4]]],[11,"try_into","","",52,[[],["result",4]]],[11,"type_id","","",52,[[],["typeid",3]]],[11,"vzip","","",52,[[]]],[11,"from","","",53,[[]]],[11,"into","","",53,[[]]],[11,"borrow","","",53,[[]]],[11,"borrow_mut","","",53,[[]]],[11,"try_from","","",53,[[],["result",4]]],[11,"try_into","","",53,[[],["result",4]]],[11,"type_id","","",53,[[],["typeid",3]]],[11,"vzip","","",53,[[]]],[11,"from","mcaptcha::pages::panel::sitekey::add","",54,[[]]],[11,"into","","",54,[[]]],[11,"borrow","","",54,[[]]],[11,"borrow_mut","","",54,[[]]],[11,"try_from","","",54,[[],["result",4]]],[11,"try_into","","",54,[[],["result",4]]],[11,"type_id","","",54,[[],["typeid",3]]],[11,"vzip","","",54,[[]]],[11,"from","","",55,[[]]],[11,"into","","",55,[[]]],[11,"to_owned","","",55,[[]]],[11,"clone_into","","",55,[[]]],[11,"borrow","","",55,[[]]],[11,"borrow_mut","","",55,[[]]],[11,"try_from","","",55,[[],["result",4]]],[11,"try_into","","",55,[[],["result",4]]],[11,"type_id","","",55,[[],["typeid",3]]],[11,"vzip","","",55,[[]]],[11,"from","","",118,[[]]],[11,"into","","",118,[[]]],[11,"borrow","","",118,[[]]],[11,"borrow_mut","","",118,[[]]],[11,"try_from","","",118,[[],["result",4]]],[11,"try_into","","",118,[[],["result",4]]],[11,"type_id","","",118,[[],["typeid",3]]],[11,"vzip","","",118,[[]]],[11,"from","mcaptcha::pages::panel::sitekey::list","",56,[[]]],[11,"into","","",56,[[]]],[11,"to_owned","","",56,[[]]],[11,"clone_into","","",56,[[]]],[11,"borrow","","",56,[[]]],[11,"borrow_mut","","",56,[[]]],[11,"try_from","","",56,[[],["result",4]]],[11,"try_into","","",56,[[],["result",4]]],[11,"type_id","","",56,[[],["typeid",3]]],[11,"vzip","","",56,[[]]],[11,"from","","",119,[[]]],[11,"into","","",119,[[]]],[11,"borrow","","",119,[[]]],[11,"borrow_mut","","",119,[[]]],[11,"try_from","","",119,[[],["result",4]]],[11,"try_into","","",119,[[],["result",4]]],[11,"type_id","","",119,[[],["typeid",3]]],[11,"vzip","","",119,[[]]],[11,"from","mcaptcha::pages::panel::sitekey::view","",57,[[]]],[11,"into","","",57,[[]]],[11,"to_owned","","",57,[[]]],[11,"clone_into","","",57,[[]]],[11,"borrow","","",57,[[]]],[11,"borrow_mut","","",57,[[]]],[11,"try_from","","",57,[[],["result",4]]],[11,"try_into","","",57,[[],["result",4]]],[11,"type_id","","",57,[[],["typeid",3]]],[11,"vzip","","",57,[[]]],[11,"from","","",58,[[]]],[11,"into","","",58,[[]]],[11,"to_owned","","",58,[[]]],[11,"clone_into","","",58,[[]]],[11,"borrow","","",58,[[]]],[11,"borrow_mut","","",58,[[]]],[11,"try_from","","",58,[[],["result",4]]],[11,"try_into","","",58,[[],["result",4]]],[11,"type_id","","",58,[[],["typeid",3]]],[11,"vzip","","",58,[[]]],[11,"from","","",59,[[]]],[11,"into","","",59,[[]]],[11,"to_owned","","",59,[[]]],[11,"clone_into","","",59,[[]]],[11,"borrow","","",59,[[]]],[11,"borrow_mut","","",59,[[]]],[11,"try_from","","",59,[[],["result",4]]],[11,"try_into","","",59,[[],["result",4]]],[11,"type_id","","",59,[[],["typeid",3]]],[11,"vzip","","",59,[[]]],[11,"from","","",120,[[]]],[11,"into","","",120,[[]]],[11,"borrow","","",120,[[]]],[11,"borrow_mut","","",120,[[]]],[11,"try_from","","",120,[[],["result",4]]],[11,"try_into","","",120,[[],["result",4]]],[11,"type_id","","",120,[[],["typeid",3]]],[11,"vzip","","",120,[[]]],[11,"from","mcaptcha::pages::panel::sitekey::routes","",60,[[]]],[11,"into","","",60,[[]]],[11,"borrow","","",60,[[]]],[11,"borrow_mut","","",60,[[]]],[11,"try_from","","",60,[[],["result",4]]],[11,"try_into","","",60,[[],["result",4]]],[11,"type_id","","",60,[[],["typeid",3]]],[11,"vzip","","",60,[[]]],[11,"from","mcaptcha::pages::panel::routes","",61,[[]]],[11,"into","","",61,[[]]],[11,"borrow","","",61,[[]]],[11,"borrow_mut","","",61,[[]]],[11,"try_from","","",61,[[],["result",4]]],[11,"try_into","","",61,[[],["result",4]]],[11,"type_id","","",61,[[],["typeid",3]]],[11,"vzip","","",61,[[]]],[11,"from","mcaptcha::pages::panel","",62,[[]]],[11,"into","","",62,[[]]],[11,"to_owned","","",62,[[]]],[11,"clone_into","","",62,[[]]],[11,"borrow","","",62,[[]]],[11,"borrow_mut","","",62,[[]]],[11,"try_from","","",62,[[],["result",4]]],[11,"try_into","","",62,[[],["result",4]]],[11,"type_id","","",62,[[],["typeid",3]]],[11,"vzip","","",62,[[]]],[11,"from","","",121,[[]]],[11,"into","","",121,[[]]],[11,"borrow","","",121,[[]]],[11,"borrow_mut","","",121,[[]]],[11,"try_from","","",121,[[],["result",4]]],[11,"try_into","","",121,[[],["result",4]]],[11,"type_id","","",121,[[],["typeid",3]]],[11,"vzip","","",121,[[]]],[11,"from","mcaptcha::pages::routes","",63,[[]]],[11,"into","","",63,[[]]],[11,"borrow","","",63,[[]]],[11,"borrow_mut","","",63,[[]]],[11,"try_from","","",63,[[],["result",4]]],[11,"try_into","","",63,[[],["result",4]]],[11,"type_id","","",63,[[],["typeid",3]]],[11,"vzip","","",63,[[]]],[11,"from","mcaptcha::routes","",64,[[]]],[11,"into","","",64,[[]]],[11,"borrow","","",64,[[]]],[11,"borrow_mut","","",64,[[]]],[11,"try_from","","",64,[[],["result",4]]],[11,"try_into","","",64,[[],["result",4]]],[11,"type_id","","",64,[[],["typeid",3]]],[11,"vzip","","",64,[[]]],[11,"from","mcaptcha::settings","",65,[[]]],[11,"into","","",65,[[]]],[11,"to_owned","","",65,[[]]],[11,"clone_into","","",65,[[]]],[11,"borrow","","",65,[[]]],[11,"borrow_mut","","",65,[[]]],[11,"try_from","","",65,[[],["result",4]]],[11,"try_into","","",65,[[],["result",4]]],[11,"type_id","","",65,[[],["typeid",3]]],[11,"vzip","","",65,[[]]],[11,"from","","",66,[[]]],[11,"into","","",66,[[]]],[11,"to_owned","","",66,[[]]],[11,"clone_into","","",66,[[]]],[11,"borrow","","",66,[[]]],[11,"borrow_mut","","",66,[[]]],[11,"try_from","","",66,[[],["result",4]]],[11,"try_into","","",66,[[],["result",4]]],[11,"type_id","","",66,[[],["typeid",3]]],[11,"vzip","","",66,[[]]],[11,"from","","",67,[[]]],[11,"into","","",67,[[]]],[11,"to_owned","","",67,[[]]],[11,"clone_into","","",67,[[]]],[11,"borrow","","",67,[[]]],[11,"borrow_mut","","",67,[[]]],[11,"try_from","","",67,[[],["result",4]]],[11,"try_into","","",67,[[],["result",4]]],[11,"type_id","","",67,[[],["typeid",3]]],[11,"vzip","","",67,[[]]],[11,"from","","",68,[[]]],[11,"into","","",68,[[]]],[11,"to_owned","","",68,[[]]],[11,"clone_into","","",68,[[]]],[11,"borrow","","",68,[[]]],[11,"borrow_mut","","",68,[[]]],[11,"try_from","","",68,[[],["result",4]]],[11,"try_into","","",68,[[],["result",4]]],[11,"type_id","","",68,[[],["typeid",3]]],[11,"vzip","","",68,[[]]],[11,"from","","",69,[[]]],[11,"into","","",69,[[]]],[11,"to_owned","","",69,[[]]],[11,"clone_into","","",69,[[]]],[11,"borrow","","",69,[[]]],[11,"borrow_mut","","",69,[[]]],[11,"try_from","","",69,[[],["result",4]]],[11,"try_into","","",69,[[],["result",4]]],[11,"type_id","","",69,[[],["typeid",3]]],[11,"vzip","","",69,[[]]],[11,"from","","",70,[[]]],[11,"into","","",70,[[]]],[11,"to_owned","","",70,[[]]],[11,"clone_into","","",70,[[]]],[11,"borrow","","",70,[[]]],[11,"borrow_mut","","",70,[[]]],[11,"try_from","","",70,[[],["result",4]]],[11,"try_into","","",70,[[],["result",4]]],[11,"type_id","","",70,[[],["typeid",3]]],[11,"vzip","","",70,[[]]],[11,"from","mcaptcha::static_assets::filemap","",71,[[]]],[11,"into","","",71,[[]]],[11,"borrow","","",71,[[]]],[11,"borrow_mut","","",71,[[]]],[11,"try_from","","",71,[[],["result",4]]],[11,"try_into","","",71,[[],["result",4]]],[11,"type_id","","",71,[[],["typeid",3]]],[11,"vzip","","",71,[[]]],[11,"from","mcaptcha::static_assets::static_files","",72,[[]]],[11,"into","","",72,[[]]],[11,"borrow","","",72,[[]]],[11,"borrow_mut","","",72,[[]]],[11,"try_from","","",72,[[],["result",4]]],[11,"try_into","","",72,[[],["result",4]]],[11,"type_id","","",72,[[],["typeid",3]]],[11,"vzip","","",72,[[]]],[11,"from","","",122,[[]]],[11,"into","","",122,[[]]],[11,"borrow","","",122,[[]]],[11,"borrow_mut","","",122,[[]]],[11,"try_from","","",122,[[],["result",4]]],[11,"try_into","","",122,[[],["result",4]]],[11,"type_id","","",122,[[],["typeid",3]]],[11,"vzip","","",122,[[]]],[11,"from","","",73,[[]]],[11,"into","","",73,[[]]],[11,"borrow","","",73,[[]]],[11,"borrow_mut","","",73,[[]]],[11,"try_from","","",73,[[],["result",4]]],[11,"try_into","","",73,[[],["result",4]]],[11,"type_id","","",73,[[],["typeid",3]]],[11,"vzip","","",73,[[]]],[11,"from","","",123,[[]]],[11,"into","","",123,[[]]],[11,"borrow","","",123,[[]]],[11,"borrow_mut","","",123,[[]]],[11,"try_from","","",123,[[],["result",4]]],[11,"try_into","","",123,[[],["result",4]]],[11,"type_id","","",123,[[],["typeid",3]]],[11,"vzip","","",123,[[]]],[11,"from","mcaptcha::stats::fetch","",74,[[]]],[11,"into","","",74,[[]]],[11,"to_owned","","",74,[[]]],[11,"clone_into","","",74,[[]]],[11,"borrow","","",74,[[]]],[11,"borrow_mut","","",74,[[]]],[11,"try_from","","",74,[[],["result",4]]],[11,"try_into","","",74,[[],["result",4]]],[11,"type_id","","",74,[[],["typeid",3]]],[11,"vzip","","",74,[[]]],[11,"from","mcaptcha::widget::routes","",75,[[]]],[11,"into","","",75,[[]]],[11,"borrow","","",75,[[]]],[11,"borrow_mut","","",75,[[]]],[11,"try_from","","",75,[[],["result",4]]],[11,"try_into","","",75,[[],["result",4]]],[11,"type_id","","",75,[[],["typeid",3]]],[11,"vzip","","",75,[[]]],[11,"from","mcaptcha::widget","",76,[[]]],[11,"into","","",76,[[]]],[11,"to_owned","","",76,[[]]],[11,"clone_into","","",76,[[]]],[11,"borrow","","",76,[[]]],[11,"borrow_mut","","",76,[[]]],[11,"try_from","","",76,[[],["result",4]]],[11,"try_into","","",76,[[],["result",4]]],[11,"type_id","","",76,[[],["typeid",3]]],[11,"vzip","","",76,[[]]],[11,"from","","",77,[[]]],[11,"into","","",77,[[]]],[11,"borrow","","",77,[[]]],[11,"borrow_mut","","",77,[[]]],[11,"try_from","","",77,[[],["result",4]]],[11,"try_into","","",77,[[],["result",4]]],[11,"type_id","","",77,[[],["typeid",3]]],[11,"vzip","","",77,[[]]],[11,"from","","",124,[[]]],[11,"into","","",124,[[]]],[11,"borrow","","",124,[[]]],[11,"borrow_mut","","",124,[[]]],[11,"try_from","","",124,[[],["result",4]]],[11,"try_into","","",124,[[],["result",4]]],[11,"type_id","","",124,[[],["typeid",3]]],[11,"vzip","","",124,[[]]],[11,"from","","",78,[[]]],[11,"into","","",78,[[]]],[11,"borrow","","",78,[[]]],[11,"borrow_mut","","",78,[[]]],[11,"try_from","","",78,[[],["result",4]]],[11,"try_into","","",78,[[],["result",4]]],[11,"type_id","","",78,[[],["typeid",3]]],[11,"vzip","","",78,[[]]],[11,"from","","",125,[[]]],[11,"into","","",125,[[]]],[11,"borrow","","",125,[[]]],[11,"borrow_mut","","",125,[[]]],[11,"try_from","","",125,[[],["result",4]]],[11,"try_into","","",125,[[],["result",4]]],[11,"type_id","","",125,[[],["typeid",3]]],[11,"vzip","","",125,[[]]],[11,"from","mcaptcha","",79,[[]]],[11,"into","","",79,[[]]],[11,"borrow","","",79,[[]]],[11,"borrow_mut","","",79,[[]]],[11,"try_from","","",79,[[],["result",4]]],[11,"try_into","","",79,[[],["result",4]]],[11,"type_id","","",79,[[],["typeid",3]]],[11,"vzip","","",79,[[]]],[11,"from","","",80,[[]]],[11,"into","","",80,[[]]],[11,"borrow","","",80,[[]]],[11,"borrow_mut","","",80,[[]]],[11,"try_from","","",80,[[],["result",4]]],[11,"try_into","","",80,[[],["result",4]]],[11,"type_id","","",80,[[],["typeid",3]]],[11,"vzip","","",80,[[]]],[11,"from","","",81,[[]]],[11,"into","","",81,[[]]],[11,"borrow","","",81,[[]]],[11,"borrow_mut","","",81,[[]]],[11,"try_from","","",81,[[],["result",4]]],[11,"try_into","","",81,[[],["result",4]]],[11,"type_id","","",81,[[],["typeid",3]]],[11,"vzip","","",81,[[]]],[11,"from","","",82,[[]]],[11,"into","","",82,[[]]],[11,"borrow","","",82,[[]]],[11,"borrow_mut","","",82,[[]]],[11,"try_from","","",82,[[],["result",4]]],[11,"try_into","","",82,[[],["result",4]]],[11,"type_id","","",82,[[],["typeid",3]]],[11,"vzip","","",82,[[]]],[11,"from","","",83,[[]]],[11,"into","","",83,[[]]],[11,"borrow","","",83,[[]]],[11,"borrow_mut","","",83,[[]]],[11,"try_from","","",83,[[],["result",4]]],[11,"try_into","","",83,[[],["result",4]]],[11,"type_id","","",83,[[],["typeid",3]]],[11,"vzip","","",83,[[]]],[11,"from","","",84,[[]]],[11,"into","","",84,[[]]],[11,"borrow","","",84,[[]]],[11,"borrow_mut","","",84,[[]]],[11,"try_from","","",84,[[],["result",4]]],[11,"try_into","","",84,[[],["result",4]]],[11,"type_id","","",84,[[],["typeid",3]]],[11,"vzip","","",84,[[]]],[11,"from","","",85,[[]]],[11,"into","","",85,[[]]],[11,"borrow","","",85,[[]]],[11,"borrow_mut","","",85,[[]]],[11,"try_from","","",85,[[],["result",4]]],[11,"try_into","","",85,[[],["result",4]]],[11,"type_id","","",85,[[],["typeid",3]]],[11,"vzip","","",85,[[]]],[11,"from","","",86,[[]]],[11,"into","","",86,[[]]],[11,"borrow","","",86,[[]]],[11,"borrow_mut","","",86,[[]]],[11,"try_from","","",86,[[],["result",4]]],[11,"try_into","","",86,[[],["result",4]]],[11,"type_id","","",86,[[],["typeid",3]]],[11,"vzip","","",86,[[]]],[11,"from","mcaptcha::api::v1::meta","",24,[[["uninitializedfielderror",3]]]],[11,"from","","",24,[[["string",3]]]],[11,"from","","",27,[[["uninitializedfielderror",3]]]],[11,"from","","",27,[[["string",3]]]],[11,"from","mcaptcha::api::v1::notifications::get","",30,[[["notification",3]]]],[11,"from","mcaptcha::errors","",43,[[["credserror",4]],["serviceerror",4]]],[11,"from","","",43,[[["validationerrors",3]],["serviceerror",4]]],[11,"from","","",43,[[["parseerror",4]],["serviceerror",4]]],[11,"from","","",43,[[["captchaerror",4]],["serviceerror",4]]],[11,"from","","",43,[[["error",4]]]],[11,"from","","",45,[[["error",4]]]],[11,"from","","",45,[[["serviceerror",4]]]],[11,"clone","mcaptcha::api::v1::account::email","",0,[[],["email",3]]],[11,"clone","mcaptcha::api::v1::account::secret","",1,[[],["secret",3]]],[11,"clone","mcaptcha::api::v1::account","",3,[[],["accountcheckpayload",3]]],[11,"clone","","",4,[[],["accountcheckresp",3]]],[11,"clone","mcaptcha::api::v1::auth::runners","",6,[[],["register",3]]],[11,"clone","","",7,[[],["login",3]]],[11,"clone","","",8,[[],["password",3]]],[11,"clone","mcaptcha::api::v1::mcaptcha::captcha","",10,[[],["mcaptchaid",3]]],[11,"clone","","",11,[[],["mcaptchadetails",3]]],[11,"clone","mcaptcha::api::v1::mcaptcha::levels","",19,[[],["levels",3]]],[11,"clone","","",20,[[],["i32levels",3]]],[11,"clone","mcaptcha::api::v1::meta","",22,[[],["builddetails",3]]],[11,"clone","","",23,[[],["builddetailsbuilder",3]]],[11,"clone","","",25,[[],["health",3]]],[11,"clone","","",26,[[],["healthbuilder",3]]],[11,"clone","mcaptcha::api::v1::pow::get_config","",34,[[],["getconfigpayload",3]]],[11,"clone","mcaptcha::api::v1::pow::verify_pow","",35,[[],["validationtoken",3]]],[11,"clone","mcaptcha::api::v1::pow::verify_token","",36,[[],["captchavalidateresp",3]]],[11,"clone","mcaptcha::pages::auth::login","",114,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::auth::register","",116,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::errors","",51,[[],["errorpage",3]]],[11,"clone","mcaptcha::pages::panel::sitekey::add","",55,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::panel::sitekey::list","",56,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::panel::sitekey::view","",57,[[],["mcaptchaconfig",3]]],[11,"clone","","",58,[[],["level",3]]],[11,"clone","","",59,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::panel","",62,[[],["indexpage",3]]],[11,"clone","mcaptcha::settings","",65,[[],["server",3]]],[11,"clone","","",66,[[],["captcha",3]]],[11,"clone","","",67,[[],["databasebuilder",3]]],[11,"clone","","",68,[[],["database",3]]],[11,"clone","","",69,[[],["redis",3]]],[11,"clone","","",70,[[],["settings",3]]],[11,"clone","mcaptcha::stats::fetch","",74,[[],["stats",3]]],[11,"clone","mcaptcha::widget","",76,[[],["indexpage",3]]],[11,"default","mcaptcha::api::v1::meta","",23,[[]]],[11,"default","","",26,[[]]],[11,"default","mcaptcha::pages::auth::login","",114,[[]]],[11,"default","mcaptcha::pages::auth::register","",116,[[]]],[11,"default","mcaptcha::pages::panel::sitekey::add","",55,[[]]],[11,"eq","mcaptcha::errors","",43,[[["serviceerror",4]],["bool",15]]],[11,"ne","","",43,[[["serviceerror",4]],["bool",15]]],[11,"eq","","",45,[[["pageerror",4]],["bool",15]]],[11,"ne","","",45,[[["pageerror",4]],["bool",15]]],[11,"deref","mcaptcha::pages::auth::login","",47,[[],["string",3]]],[11,"deref","mcaptcha::pages::auth::register","",48,[[],["string",3]]],[11,"deref","mcaptcha::pages::errors","",52,[[],["string",3]]],[11,"deref","","",53,[[],["string",3]]],[11,"deref","mcaptcha::pages::panel::sitekey::add","",54,[[],["string",3]]],[11,"deref","mcaptcha::widget","",77,[[],["string",3]]],[11,"deref","mcaptcha","",79,[[],["settings",3]]],[11,"deref","","",80,[[],["filemap",3]]],[11,"deref","","",81,[[],["str",15]]],[11,"deref","","",82,[[],["str",15]]],[11,"deref","","",83,[[],["str",15]]],[11,"deref","","",84,[[],["str",15]]],[11,"deref","","",85,[[],["str",15]]],[11,"deref","","",86,[[],["string",3]]],[11,"fmt","mcaptcha::api::v1::account::email","",0,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::account::secret","",1,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::account","",3,[[["formatter",3]],["result",6]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::auth::runners","",6,[[["formatter",3]],["result",6]]],[11,"fmt","","",7,[[["formatter",3]],["result",6]]],[11,"fmt","","",8,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::mcaptcha::captcha","",10,[[["formatter",3]],["result",6]]],[11,"fmt","","",11,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::mcaptcha::levels","",19,[[["formatter",3]],["result",6]]],[11,"fmt","","",20,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::meta","",22,[[["formatter",3]],["result",6]]],[11,"fmt","","",24,[[["formatter",3]],["result",6]]],[11,"fmt","","",25,[[["formatter",3]],["result",6]]],[11,"fmt","","",27,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::pow::get_config","",34,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::pow::verify_pow","",35,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::pow::verify_token","",36,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::errors","",43,[[["formatter",3]],["result",6]]],[11,"fmt","","",45,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::settings","",65,[[["formatter",3]],["result",6]]],[11,"fmt","","",66,[[["formatter",3]],["result",6]]],[11,"fmt","","",67,[[["formatter",3]],["result",6]]],[11,"fmt","","",68,[[["formatter",3]],["result",6]]],[11,"fmt","","",69,[[["formatter",3]],["result",6]]],[11,"fmt","","",70,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::stats::fetch","",74,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::meta","",24,[[["formatter",3]],["result",6]]],[11,"fmt","","",27,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::errors","",43,[[["formatter",3]],["result",6]]],[11,"fmt","","",45,[[["formatter",3]],["result",6]]],[11,"source","","",43,[[],[["option",4],["error",8]]]],[11,"source","","",45,[[],[["option",4],["error",8]]]],[11,"poll_ready","mcaptcha::middleware::auth","",46,[[["context",3]],[["result",4],["poll",4]]]],[11,"call","","",46,[[["servicerequest",3]]]],[11,"new_transform","","",113,[[]]],[11,"deserialize","mcaptcha::api::v1::account::email","",0,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::account::secret","",1,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::account","",3,[[],["result",4]]],[11,"deserialize","","",4,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::auth::runners","",6,[[],["result",4]]],[11,"deserialize","","",7,[[],["result",4]]],[11,"deserialize","","",8,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::mcaptcha::captcha","",10,[[],["result",4]]],[11,"deserialize","","",11,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::mcaptcha::duration","",13,[[],["result",4]]],[11,"deserialize","","",14,[[],["result",4]]],[11,"deserialize","","",15,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::mcaptcha::levels","",17,[[],["result",4]]],[11,"deserialize","","",18,[[],["result",4]]],[11,"deserialize","","",19,[[],["result",4]]],[11,"deserialize","","",20,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::meta","",22,[[],["result",4]]],[11,"deserialize","","",25,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::notifications::add","",28,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::notifications::get","",30,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::notifications::mark_read","",31,[[],["result",4]]],[11,"deserialize","","",32,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::pow::get_config","",34,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::pow::verify_pow","",35,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::pow::verify_token","",36,[[],["result",4]]],[11,"deserialize","mcaptcha::errors","",44,[[],["result",4]]],[11,"deserialize","mcaptcha::settings","",65,[[],["result",4]]],[11,"deserialize","","",66,[[],["result",4]]],[11,"deserialize","","",67,[[],["result",4]]],[11,"deserialize","","",68,[[],["result",4]]],[11,"deserialize","","",69,[[],["result",4]]],[11,"deserialize","","",70,[[],["result",4]]],[11,"deserialize","mcaptcha::stats::fetch","",74,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::account::email","",0,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::account::secret","",1,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::account","",3,[[],["result",4]]],[11,"serialize","","",4,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::auth::runners","",6,[[],["result",4]]],[11,"serialize","","",7,[[],["result",4]]],[11,"serialize","","",8,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::mcaptcha::captcha","",10,[[],["result",4]]],[11,"serialize","","",11,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::mcaptcha::duration","",13,[[],["result",4]]],[11,"serialize","","",14,[[],["result",4]]],[11,"serialize","","",15,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::mcaptcha::levels","",17,[[],["result",4]]],[11,"serialize","","",18,[[],["result",4]]],[11,"serialize","","",19,[[],["result",4]]],[11,"serialize","","",20,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::meta","",22,[[],["result",4]]],[11,"serialize","","",25,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::notifications::add","",28,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::notifications::get","",30,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::notifications::mark_read","",31,[[],["result",4]]],[11,"serialize","","",32,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::pow::get_config","",34,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::pow::verify_pow","",35,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::pow::verify_token","",36,[[],["result",4]]],[11,"serialize","mcaptcha::errors","",44,[[],["result",4]]],[11,"serialize","mcaptcha::stats::fetch","",74,[[],["result",4]]],[11,"register","mcaptcha::api::v1::account::delete","",87,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::account::email","",88,[[["appservice",3]]]],[11,"register","","",89,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::account::secret","",90,[[["appservice",3]]]],[11,"register","","",91,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::account::username","",92,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::auth","",93,[[["appservice",3]]]],[11,"register","","",94,[[["appservice",3]]]],[11,"register","","",95,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::mcaptcha::captcha","",96,[[["appservice",3]]]],[11,"register","","",97,[[["appservice",3]]]],[11,"register","","",98,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::mcaptcha::duration","",99,[[["appservice",3]]]],[11,"register","","",100,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::mcaptcha::levels","",101,[[["appservice",3]]]],[11,"register","","",102,[[["appservice",3]]]],[11,"register","","",103,[[["appservice",3]]]],[11,"register","","",104,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::meta","",105,[[["appservice",3]]]],[11,"register","","",106,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::notifications::add","",107,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::notifications::get","",108,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::notifications::mark_read","",109,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::pow::get_config","",110,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::pow::verify_pow","",111,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::pow::verify_token","",112,[[["appservice",3]]]],[11,"register","mcaptcha::pages::auth::login","",115,[[["appservice",3]]]],[11,"register","mcaptcha::pages::auth::register","",117,[[["appservice",3]]]],[11,"register","mcaptcha::pages::panel::sitekey::add","",118,[[["appservice",3]]]],[11,"register","mcaptcha::pages::panel::sitekey::list","",119,[[["appservice",3]]]],[11,"register","mcaptcha::pages::panel::sitekey::view","",120,[[["appservice",3]]]],[11,"register","mcaptcha::pages::panel","",121,[[["appservice",3]]]],[11,"register","mcaptcha::static_assets::static_files","",122,[[["appservice",3]]]],[11,"register","","",123,[[["appservice",3]]]],[11,"register","mcaptcha::widget","",124,[[["appservice",3]]]],[11,"register","","",125,[[["appservice",3]]]],[11,"error_response","mcaptcha::errors","",43,[[],["httpresponse",3]]],[11,"status_code","","",43,[[],["statuscode",3]]],[11,"error_response","","",45,[[],["httpresponse",3]]],[11,"status_code","","",45,[[],["statuscode",3]]],[11,"initialize","mcaptcha::pages::auth::login","",47,[[]]],[11,"initialize","mcaptcha::pages::auth::register","",48,[[]]],[11,"initialize","mcaptcha::pages::errors","",52,[[]]],[11,"initialize","","",53,[[]]],[11,"initialize","mcaptcha::pages::panel::sitekey::add","",54,[[]]],[11,"initialize","mcaptcha::widget","",77,[[]]],[11,"initialize","mcaptcha","",79,[[]]],[11,"initialize","","",80,[[]]],[11,"initialize","","",81,[[]]],[11,"initialize","","",82,[[]]],[11,"initialize","","",83,[[]]],[11,"initialize","","",84,[[]]],[11,"initialize","","",85,[[]]],[11,"initialize","","",86,[[]]],[11,"get","mcaptcha::docs","",42,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",42,[[],["filenames",4]]],[11,"get","mcaptcha::static_assets::static_files","",72,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",72,[[],["filenames",4]]],[11,"get","","",73,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",73,[[],["filenames",4]]],[11,"get","mcaptcha::widget","",78,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",78,[[],["filenames",4]]],[11,"render_once","mcaptcha::pages::auth::login","",114,[[],["renderresult",6]]],[11,"render_once_to","","",114,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","mcaptcha::pages::auth::register","",116,[[],["renderresult",6]]],[11,"render_once_to","","",116,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","mcaptcha::pages::errors","",51,[[],["renderresult",6]]],[11,"render_once_to","","",51,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","mcaptcha::pages::panel::sitekey::add","",55,[[],["renderresult",6]]],[11,"render_once_to","","",55,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","mcaptcha::pages::panel::sitekey::list","",56,[[],["renderresult",6]]],[11,"render_once_to","","",56,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","mcaptcha::pages::panel::sitekey::view","",59,[[],["renderresult",6]]],[11,"render_once_to","","",59,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","mcaptcha::pages::panel","",62,[[],["renderresult",6]]],[11,"render_once_to","","",62,[[["buffer",3]],[["result",4],["rendererror",4]]]],[11,"render_once","mcaptcha::widget","",76,[[],["renderresult",6]]],[11,"render_once_to","","",76,[[["buffer",3]],[["result",4],["rendererror",4]]]]],"p":[[3,"Email"],[3,"Secret"],[3,"Account"],[3,"AccountCheckPayload"],[3,"AccountCheckResp"],[3,"Auth"],[3,"Register"],[3,"Login"],[3,"Password"],[3,"MCaptcha"],[3,"MCaptchaID"],[3,"MCaptchaDetails"],[3,"Duration"],[3,"UpdateDuration"],[3,"GetDurationResp"],[3,"GetDuration"],[3,"Levels"],[3,"AddLevels"],[3,"UpdateLevels"],[3,"Levels"],[3,"I32Levels"],[3,"Meta"],[3,"BuildDetails"],[3,"BuildDetailsBuilder"],[4,"BuildDetailsBuilderError"],[3,"Health"],[3,"HealthBuilder"],[4,"HealthBuilderError"],[3,"AddNotification"],[3,"Notification"],[3,"NotificationResp"],[3,"MarkReadReq"],[3,"NotificationResp"],[3,"Notifications"],[3,"GetConfigPayload"],[3,"ValidationToken"],[3,"CaptchaValidateResp"],[3,"PoW"],[3,"Routes"],[3,"Data"],[4,"SystemGroup"],[3,"Docs"],[3,"Asset"],[4,"ServiceError"],[3,"ErrorToResponse"],[4,"PageError"],[3,"CheckLoginMiddleware"],[3,"INDEX"],[3,"INDEX"],[3,"Auth"],[3,"Errors"],[3,"ErrorPage"],[3,"INTERNAL_SERVER_ERROR_BODY"],[3,"UNKNOWN_ERROR_BODY"],[3,"INDEX"],[3,"IndexPage"],[3,"IndexPage"],[3,"McaptchaConfig"],[3,"Level"],[3,"IndexPage"],[3,"Sitekey"],[3,"Panel"],[3,"IndexPage"],[3,"Routes"],[4,"Methods"],[3,"Server"],[3,"Captcha"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Redis"],[3,"Settings"],[3,"FileMap"],[3,"Asset"],[3,"Favicons"],[3,"Stats"],[3,"Widget"],[3,"IndexPage"],[3,"INDEX_PAGE"],[3,"WidgetAssets"],[3,"SETTINGS"],[3,"FILES"],[3,"JS"],[3,"CSS"],[3,"MOBILE_CSS"],[3,"VERIFICATIN_WIDGET_JS"],[3,"VERIFICATIN_WIDGET_CSS"],[3,"SOURCE_FILES_OF_INSTANCE"],[3,"delete_account"],[3,"email_exists"],[3,"set_email"],[3,"get_secret"],[3,"update_user_secret"],[3,"username_exists"],[3,"register"],[3,"login"],[3,"signout"],[3,"update_token"],[3,"get_token"],[3,"delete_mcaptcha"],[3,"update_duration"],[3,"get_duration"],[3,"add_levels"],[3,"update_levels"],[3,"delete_levels"],[3,"get_levels"],[3,"build_details"],[3,"health"],[3,"add_notification"],[3,"get_notification"],[3,"mark_read"],[3,"get_config"],[3,"verify_pow"],[3,"validate_captcha_token"],[3,"CheckLogin"],[3,"IndexPage"],[3,"login"],[3,"IndexPage"],[3,"join"],[3,"add_sitekey"],[3,"list_sitekeys"],[3,"view_sitekey"],[3,"panel"],[3,"static_files"],[3,"favicons"],[3,"show_widget"],[3,"widget_assets"]]},\
+"mcaptcha":{"doc":"","i":[[0,"api","mcaptcha","",null,null],[0,"v1","mcaptcha::api","",null,null],[0,"account","mcaptcha::api::v1","",null,null],[0,"delete","mcaptcha::api::v1::account","",null,null],[3,"delete_account","mcaptcha::api::v1::account::delete","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"email","mcaptcha::api::v1::account","",null,null],[3,"Email","mcaptcha::api::v1::account::email","",null,null],[12,"email","","",0,null],[3,"email_exists","","",null,null],[3,"set_email","","update email",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"secret","mcaptcha::api::v1::account","",null,null],[3,"Secret","mcaptcha::api::v1::account::secret","",null,null],[12,"secret","","",1,null],[3,"get_secret","","",null,null],[3,"update_user_secret","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"username","mcaptcha::api::v1::account","",null,null],[3,"username_exists","mcaptcha::api::v1::account::username","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha::api::v1::account","",null,null],[3,"Account","mcaptcha::api::v1::account::routes","",null,null],[12,"delete","","",2,null],[12,"email_exists","","",2,null],[12,"get_secret","","",2,null],[12,"update_email","","",2,null],[12,"update_secret","","",2,null],[12,"username_exists","","",2,null],[11,"new","","",2,[[],["account",3]]],[3,"AccountCheckPayload","mcaptcha::api::v1::account","",null,null],[12,"val","","",3,null],[3,"AccountCheckResp","","",null,null],[12,"exists","","",4,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"auth","mcaptcha::api::v1","",null,null],[0,"routes","mcaptcha::api::v1::auth","",null,null],[3,"Auth","mcaptcha::api::v1::auth::routes","",null,null],[12,"logout","","",5,null],[12,"login","","",5,null],[12,"register","","",5,null],[11,"new","","",5,[[],["auth",3]]],[0,"runners","mcaptcha::api::v1::auth","",null,null],[3,"Register","mcaptcha::api::v1::auth::runners","",null,null],[12,"username","","",6,null],[12,"password","","",6,null],[12,"confirm_password","","",6,null],[12,"email","","",6,null],[3,"Login","","",null,null],[12,"login","","",7,null],[12,"password","","",7,null],[3,"Password","","",null,null],[12,"password","","",8,null],[5,"login_runner","","returns Ok(()) when everything checks out and the user is …",null,[[["login",3],["appdata",6]]]],[5,"register_runner","","",null,[[["appdata",6],["register",3]]]],[5,"services","mcaptcha::api::v1::auth","",null,[[["serviceconfig",3]]]],[3,"register","","",null,null],[3,"login","","",null,null],[3,"signout","","",null,null],[0,"mcaptcha","mcaptcha::api::v1","",null,null],[0,"captcha","mcaptcha::api::v1::mcaptcha","",null,null],[0,"routes","mcaptcha::api::v1::mcaptcha::captcha","",null,null],[3,"MCaptcha","mcaptcha::api::v1::mcaptcha::captcha::routes","",null,null],[12,"delete","","",9,null],[12,"get_token","","",9,null],[12,"update_key","","",9,null],[11,"new","","",9,[[],["mcaptcha",3]]],[5,"services","mcaptcha::api::v1::mcaptcha::captcha","",null,[[["serviceconfig",3]]]],[3,"MCaptchaID","","",null,null],[12,"name","","",10,null],[3,"MCaptchaDetails","","",null,null],[12,"name","","",11,null],[12,"key","","",11,null],[5,"add_mcaptcha_util","","",null,[[["u32",15],["appdata",6],["identity",3],["str",15]]]],[3,"update_token","","",null,null],[5,"update_token_helper","","",null,[[["appdata",6],["str",15]]]],[3,"get_token","","",null,null],[3,"delete_mcaptcha","","",null,null],[0,"duration","mcaptcha::api::v1::mcaptcha","",null,null],[0,"routes","mcaptcha::api::v1::mcaptcha::duration","",null,null],[3,"Duration","mcaptcha::api::v1::mcaptcha::duration::routes","",null,null],[12,"update","","",12,null],[12,"get","","",12,null],[11,"new","","",12,[[],["duration",3]]],[3,"UpdateDuration","mcaptcha::api::v1::mcaptcha::duration","",null,null],[12,"key","","",13,null],[12,"duration","","",13,null],[3,"update_duration","","",null,null],[3,"GetDurationResp","","",null,null],[12,"duration","","",14,null],[3,"GetDuration","","",null,null],[12,"token","","",15,null],[3,"get_duration","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"levels","mcaptcha::api::v1::mcaptcha","",null,null],[0,"routes","mcaptcha::api::v1::mcaptcha::levels","",null,null],[3,"Levels","mcaptcha::api::v1::mcaptcha::levels::routes","",null,null],[12,"add","","",16,null],[12,"delete","","",16,null],[12,"get","","",16,null],[12,"update","","",16,null],[11,"new","","",16,[[],["levels",3]]],[3,"AddLevels","mcaptcha::api::v1::mcaptcha::levels","",null,null],[12,"levels","","",17,null],[12,"duration","","",17,null],[12,"description","","",17,null],[5,"services","","",null,[[["serviceconfig",3]]]],[3,"add_levels","","",null,null],[3,"UpdateLevels","","",null,null],[12,"levels","","",18,null],[12,"key","","name is config_name",18,null],[3,"update_levels","","",null,null],[3,"delete_levels","","",null,null],[3,"get_levels","","",null,null],[3,"Levels","","",null,null],[12,"levels","","",19,null],[3,"I32Levels","","",null,null],[12,"difficulty_factor","","",20,null],[12,"visitor_threshold","","",20,null],[5,"get_levels_util","","",null,[[["appdata",6],["str",15]]]],[5,"get_random","mcaptcha::api::v1::mcaptcha","",null,[[["usize",15]],["string",3]]],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"meta","mcaptcha::api::v1","",null,null],[0,"routes","mcaptcha::api::v1::meta","",null,null],[3,"Meta","mcaptcha::api::v1::meta::routes","",null,null],[12,"build_details","","",21,null],[12,"health","","",21,null],[11,"new","","",21,[[]]],[3,"BuildDetails","mcaptcha::api::v1::meta","",null,null],[12,"version","","",22,null],[12,"git_commit_hash","","",22,null],[3,"BuildDetailsBuilder","","Builder for BuildDetails.",null,null],[12,"version","","",23,null],[12,"git_commit_hash","","",23,null],[11,"version","","",23,[[["str",15]]]],[11,"git_commit_hash","","",23,[[["str",15]]]],[11,"build","","Builds a new BuildDetails.",23,[[],[["builddetailsbuildererror",4],["builddetails",3],["result",4]]]],[4,"BuildDetailsBuilderError","","Error type for BuildDetailsBuilder",null,null],[13,"UninitializedField","","Uninitialized field",24,null],[13,"ValidationError","","Custom validation error",24,null],[3,"build_details","","emmits build details of the bninary",null,null],[3,"Health","","Health check return datatype",null,null],[12,"db","","",25,null],[12,"redis","","",25,null],[3,"HealthBuilder","","Builder for Health.",null,null],[12,"db","","",26,null],[12,"redis","","",26,null],[11,"db","","",26,[[["bool",15]]]],[11,"redis","","",26,[[["bool",15],["option",4]]]],[11,"build","","Builds a new Health.",26,[[],[["health",3],["healthbuildererror",4],["result",4]]]],[4,"HealthBuilderError","","Error type for HealthBuilder",null,null],[13,"UninitializedField","","Uninitialized field",27,null],[13,"ValidationError","","Custom validation error",27,null],[11,"is_redis","","",25,[[["option",4]],["bool",15]]],[3,"health","","checks all components of the system",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"notifications","mcaptcha::api::v1","",null,null],[0,"add","mcaptcha::api::v1::notifications","",null,null],[3,"AddNotification","mcaptcha::api::v1::notifications::add","",null,null],[12,"to","","",28,null],[12,"heading","","",28,null],[12,"message","","",28,null],[3,"add_notification","","route handler that adds a notification message",null,null],[0,"get","mcaptcha::api::v1::notifications","",null,null],[3,"Notification","mcaptcha::api::v1::notifications::get","",null,null],[12,"name","","",29,null],[12,"heading","","",29,null],[12,"message","","",29,null],[12,"received","","",29,null],[12,"id","","",29,null],[3,"NotificationResp","","",null,null],[12,"name","","",30,null],[12,"heading","","",30,null],[12,"message","","",30,null],[12,"received","","",30,null],[12,"id","","",30,null],[3,"get_notification","","route handler that gets all unread notifications",null,null],[0,"mark_read","mcaptcha::api::v1::notifications","",null,null],[3,"MarkReadReq","mcaptcha::api::v1::notifications::mark_read","",null,null],[12,"id","","",31,null],[3,"NotificationResp","","",null,null],[12,"name","","",32,null],[12,"heading","","",32,null],[12,"message","","",32,null],[12,"received","","",32,null],[12,"id","","",32,null],[3,"mark_read","","route handler that marks a notification read",null,null],[0,"routes","mcaptcha::api::v1::notifications","",null,null],[3,"Notifications","mcaptcha::api::v1::notifications::routes","",null,null],[12,"add","","",33,null],[12,"mark_read","","",33,null],[12,"get","","",33,null],[11,"new","","",33,[[],["notifications",3]]],[5,"services","mcaptcha::api::v1::notifications","",null,[[["serviceconfig",3]]]],[0,"pow","mcaptcha::api::v1","",null,null],[0,"get_config","mcaptcha::api::v1::pow","",null,null],[3,"GetConfigPayload","mcaptcha::api::v1::pow::get_config","",null,null],[12,"key","","",34,null],[3,"get_config","","get PoW configuration for an mcaptcha key",null,null],[5,"init_mcaptcha","","Call this when [MCaptcha][libmcaptcha::MCaptcha] is not …",null,[[["appdata",6],["str",15]]]],[0,"verify_pow","mcaptcha::api::v1::pow","PoW Verification module",null,null],[3,"ValidationToken","mcaptcha::api::v1::pow::verify_pow","validation token that clients receive as proof for …",null,null],[12,"token","","",35,null],[3,"verify_pow","","route handler that verifies PoW and issues a solution …",null,null],[0,"verify_token","mcaptcha::api::v1::pow","PoW success token module",null,null],[3,"CaptchaValidateResp","mcaptcha::api::v1::pow::verify_token","",null,null],[12,"valid","","",36,null],[3,"validate_captcha_token","","route hander that validates a PoW solution token",null,null],[0,"routes","mcaptcha::api::v1::pow","",null,null],[3,"PoW","mcaptcha::api::v1::pow::routes","",null,null],[12,"get_config","","",37,null],[12,"verify_pow","","",37,null],[12,"validate_captcha_token","","",37,null],[12,"scope","","",37,null],[11,"new","","",37,[[]]],[5,"services","mcaptcha::api::v1::pow","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha::api::v1","",null,null],[17,"ROUTES","mcaptcha::api::v1::routes","",null,null],[3,"Routes","","",null,null],[12,"auth","","",38,null],[12,"account","","",38,null],[12,"levels","","",38,null],[12,"mcaptcha","","",38,null],[12,"duration","","",38,null],[12,"meta","","",38,null],[12,"pow","","",38,null],[12,"notifications","","",38,null],[11,"new","","",38,[[],["routes",3]]],[5,"services","mcaptcha::api::v1","",null,[[["serviceconfig",3]]]],[0,"data","mcaptcha","",null,null],[3,"Data","mcaptcha::data","",null,null],[12,"db","","",39,null],[12,"creds","","",39,null],[12,"captcha","","",39,null],[4,"SystemGroup","","",null,null],[13,"Embedded","","",40,null],[13,"Redis","","",40,null],[11,"get_pow","","utility function to get difficulty factor of site id and …",40,[[["string",3]]]],[11,"verify_pow","","utility function to verify [Work]",40,[[["work",3]]]],[11,"validate_verification_tokens","","utility function to validate verification tokens",40,[[["verifycaptcharesult",3]]]],[11,"new","","",39,[[]]],[11,"new_system","","",39,[[["save",8],["addr",3],["mastertrait",8],["addr",3]],[["system",3],["save",8],["mastertrait",8]]]],[0,"docs","mcaptcha","",null,null],[0,"routes","mcaptcha::docs","",null,null],[3,"Docs","mcaptcha::docs::routes","",null,null],[12,"home","","",41,null],[12,"spec","","",41,null],[12,"assets","","",41,null],[11,"new","","",41,[[]]],[17,"DOCS","mcaptcha::docs","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[3,"Asset","","",null,null],[11,"get","","",42,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",42,[[]]],[5,"handle_embedded_file","","",null,[[["str",15]],["httpresponse",3]]],[5,"dist","","",null,[[["path",3],["string",3]]]],[5,"spec","","",null,[[]]],[5,"index","","",null,[[]]],[0,"errors","mcaptcha","",null,null],[4,"ServiceError","mcaptcha::errors","",null,null],[13,"InternalServerError","","",43,null],[13,"ClosedForRegistration","","",43,null],[13,"NotAnEmail","","",43,null],[13,"NotAUrl","","",43,null],[13,"WrongPassword","","",43,null],[13,"UsernameNotFound","","",43,null],[13,"AccountNotFound","","",43,null],[13,"ProfainityError","","when the value passed contains profainity",43,null],[13,"BlacklistError","","when the value passed contains blacklisted words see …",43,null],[13,"UsernameCaseMappedError","","when the value passed contains characters not present in …",43,null],[13,"PasswordTooShort","","",43,null],[13,"PasswordTooLong","","",43,null],[13,"PasswordsDontMatch","","",43,null],[13,"UsernameTaken","","when the a username is already taken",43,null],[13,"EmailTaken","","email is already taken",43,null],[13,"TokenNotFound","","when the a token name is already taken token not found",43,null],[13,"CaptchaError","","",43,null],[3,"ErrorToResponse","","",null,null],[12,"error","","",44,null],[6,"ServiceResult","","",null,null],[4,"PageError","","",null,null],[13,"InternalServerError","","",45,null],[13,"ServiceError","","",45,null],[6,"PageResult","","",null,null],[0,"middleware","mcaptcha","",null,null],[0,"auth","mcaptcha::middleware","",null,null],[3,"CheckLogin","mcaptcha::middleware::auth","",null,null],[3,"CheckLoginMiddleware","","",null,null],[12,"service","","",46,null],[0,"pages","mcaptcha","",null,null],[0,"auth","mcaptcha::pages","",null,null],[0,"login","mcaptcha::pages::auth","",null,null],[3,"IndexPage","mcaptcha::pages::auth::login","",null,null],[17,"PAGE","","",null,null],[3,"INDEX","","",null,null],[12,"__private_field","","",47,null],[3,"login","","",null,null],[0,"register","mcaptcha::pages::auth","",null,null],[3,"IndexPage","mcaptcha::pages::auth::register","",null,null],[17,"PAGE","","",null,null],[3,"INDEX","","",null,null],[12,"__private_field","","",48,null],[3,"join","","",null,null],[0,"routes","mcaptcha::pages::auth","",null,null],[3,"Auth","mcaptcha::pages::auth::routes","",null,null],[12,"login","","",49,null],[12,"join","","",49,null],[11,"new","","",49,[[],["auth",3]]],[5,"services","mcaptcha::pages::auth","",null,[[["serviceconfig",3]]]],[0,"errors","mcaptcha::pages","",null,null],[0,"routes","mcaptcha::pages::errors","",null,null],[3,"Errors","mcaptcha::pages::errors::routes","",null,null],[12,"internal_server_error","","",50,null],[12,"unknown_error","","",50,null],[11,"new","","",50,[[]]],[3,"ErrorPage","mcaptcha::pages::errors","",null,null],[12,"title","","",51,null],[12,"message","","",51,null],[17,"PAGE","","",null,null],[11,"new","","",51,[[["str",15]]]],[3,"INTERNAL_SERVER_ERROR_BODY","","",null,null],[12,"__private_field","","",52,null],[3,"UNKNOWN_ERROR_BODY","","",null,null],[12,"__private_field","","",53,null],[5,"error","","",null,[[["usize",15],["path",3]]]],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"panel","mcaptcha::pages","",null,null],[0,"sitekey","mcaptcha::pages::panel","",null,null],[0,"add","mcaptcha::pages::panel::sitekey","",null,null],[17,"PAGE","mcaptcha::pages::panel::sitekey::add","",null,null],[3,"INDEX","","",null,null],[12,"__private_field","","",54,null],[3,"IndexPage","","",null,null],[12,"levels","","",55,null],[12,"form_title","","",55,null],[12,"form_description","","",55,null],[12,"form_duration","","",55,null],[3,"add_sitekey","","",null,null],[0,"list","mcaptcha::pages::panel::sitekey","",null,null],[3,"IndexPage","mcaptcha::pages::panel::sitekey::list","",null,null],[12,"sitekeys","","",56,null],[17,"PAGE","","",null,null],[11,"new","","",56,[[["mcaptchadetails",3],["vec",3]]]],[3,"list_sitekeys","","render a list of all sitekeys that a user has",null,null],[5,"get_list_sitekeys","","utility function to get a list of all sitekeys that a …",null,[[["appdata",6],["identity",3]]]],[6,"SiteKeys","","",null,null],[0,"view","mcaptcha::pages::panel::sitekey","",null,null],[17,"PAGE","mcaptcha::pages::panel::sitekey::view","",null,null],[3,"McaptchaConfig","","",null,null],[12,"config_id","","",57,null],[12,"duration","","",57,null],[12,"name","","",57,null],[3,"Level","","",null,null],[12,"difficulty_factor","","",58,null],[12,"visitor_threshold","","",58,null],[3,"IndexPage","","",null,null],[12,"duration","","",59,null],[12,"name","","",59,null],[12,"key","","",59,null],[12,"levels","","",59,null],[11,"new","","",59,[[["vec",3],["level",3],["string",3],["mcaptchaconfig",3]]]],[3,"view_sitekey","","route handler that renders individual views for sitekeys",null,null],[0,"routes","mcaptcha::pages::panel::sitekey","",null,null],[3,"Sitekey","mcaptcha::pages::panel::sitekey::routes","",null,null],[12,"list","","",60,null],[12,"add","","",60,null],[12,"view","","",60,null],[11,"new","","",60,[[]]],[5,"services","mcaptcha::pages::panel::sitekey","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha::pages::panel","",null,null],[3,"Panel","mcaptcha::pages::panel::routes","",null,null],[12,"home","","",61,null],[12,"sitekey","","",61,null],[11,"new","","",61,[[]]],[3,"IndexPage","mcaptcha::pages::panel","",null,null],[12,"sitekeys","","",62,null],[11,"new","","",62,[[["mcaptchadetails",3],["vec",3]]]],[17,"PAGE","","",null,null],[3,"panel","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha::pages","",null,null],[17,"ROUTES","mcaptcha::pages::routes","",null,null],[3,"Routes","","",null,null],[12,"home","","",63,null],[12,"auth","","",63,null],[12,"panel","","",63,null],[12,"errors","","",63,null],[12,"about","","",63,null],[12,"thanks","","",63,null],[12,"donate","","",63,null],[12,"security","","",63,null],[12,"privacy","","",63,null],[11,"new","","",63,[[],["routes",3]]],[17,"NAME","mcaptcha::pages","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[0,"routes","mcaptcha","",null,null],[4,"Methods","mcaptcha::routes","",null,null],[13,"Get","","GET hander",64,null],[13,"Post","","POST handler",64,null],[13,"ProtectGet","","Protected GET handler",64,null],[13,"ProtectPost","","Protected POST handler",64,null],[0,"settings","mcaptcha","",null,null],[3,"Server","mcaptcha::settings","",null,null],[12,"allow_registration","","",65,null],[12,"port","","",65,null],[12,"domain","","",65,null],[12,"cookie_secret","","",65,null],[12,"ip","","",65,null],[12,"url_prefix","","",65,null],[3,"Captcha","","",null,null],[12,"salt","","",66,null],[12,"gc","","",66,null],[11,"get_ip","","",65,[[],["string",3]]],[3,"DatabaseBuilder","","",null,null],[12,"port","","",67,null],[12,"hostname","","",67,null],[12,"username","","",67,null],[12,"password","","",67,null],[12,"name","","",67,null],[12,"url","","",67,null],[11,"extract_database_url","","",67,[[["url",3]]]],[3,"Database","","",null,null],[12,"url","","",68,null],[12,"pool","","",68,null],[3,"Redis","","",null,null],[12,"url","","",69,null],[12,"pool","","",69,null],[3,"Settings","","",null,null],[12,"debug","","",70,null],[12,"database","","",70,null],[12,"redis","","",70,null],[12,"server","","",70,null],[12,"pow","","",70,null],[12,"source_code","","",70,null],[11,"new","","",70,[[],[["configerror",4],["result",4]]]],[5,"check_url","","",null,[[["config",3]]]],[5,"set_from_database_url","","",null,[[["databasebuilder",3],["config",3]]]],[5,"set_database_url","","",null,[[["config",3]]]],[0,"static_assets","mcaptcha","",null,null],[0,"filemap","mcaptcha::static_assets","",null,null],[3,"FileMap","mcaptcha::static_assets::filemap","",null,null],[12,"files","","",71,null],[11,"new","","",71,[[]]],[11,"get","","",71,[[["str",15]],[["option",4],["str",15]]]],[0,"static_files","mcaptcha::static_assets","",null,null],[3,"Asset","mcaptcha::static_assets::static_files","",null,null],[11,"get","","",72,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",72,[[]]],[5,"handle_assets","","",null,[[["str",15]],["httpresponse",3]]],[3,"static_files","","",null,null],[3,"Favicons","","",null,null],[11,"get","","",73,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",73,[[]]],[5,"handle_favicons","","",null,[[["str",15]],["httpresponse",3]]],[3,"favicons","","",null,null],[5,"services","mcaptcha::static_assets","",null,[[["serviceconfig",3]]]],[0,"stats","mcaptcha","",null,null],[0,"fetch","mcaptcha::stats","",null,null],[3,"Stats","mcaptcha::stats::fetch","",null,null],[12,"config_fetches","","",74,null],[12,"solves","","",74,null],[12,"confirms","","",74,null],[11,"new","","",74,[[["pgpool",6],["str",15]]]],[11,"fetch_config_fetched","","featch PoWConfig fetches",74,[[["pgpool",6],["str",15]]]],[11,"fetch_solve","","featch PoWConfig solves",74,[[["pgpool",6],["str",15]]]],[11,"fetch_confirm","","featch PoWConfig confirms",74,[[["pgpool",6],["str",15]]]],[0,"record","mcaptcha::stats","",null,null],[5,"record_fetch","mcaptcha::stats::record","record PoWConfig fetches",null,[[["pgpool",6],["str",15]]]],[5,"record_solve","","record PoWConfig solves",null,[[["pgpool",6],["str",15]]]],[5,"record_confirm","","record PoWConfig confirms",null,[[["pgpool",6],["str",15]]]],[0,"widget","mcaptcha","",null,null],[0,"routes","mcaptcha::widget","",null,null],[3,"Widget","mcaptcha::widget::routes","",null,null],[12,"verification_widget","","",75,null],[12,"js","","",75,null],[12,"wasm","","",75,null],[11,"new","","",75,[[]]],[17,"WIDGET_ROUTES","mcaptcha::widget","",null,null],[3,"IndexPage","","",null,null],[17,"PAGE","","",null,null],[11,"new","","",76,[[]]],[3,"INDEX_PAGE","","",null,null],[12,"__private_field","","",77,null],[3,"show_widget","","render a client side widget for CAPTCHA verification",null,null],[3,"WidgetAssets","","",null,null],[11,"get","","",78,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",78,[[]]],[5,"handle_widget_assets","","",null,[[["str",15]],["httpresponse",3]]],[3,"widget_assets","","",null,null],[5,"services","","",null,[[["serviceconfig",3]]]],[3,"Data","mcaptcha","",null,null],[12,"db","","",39,null],[12,"creds","","",39,null],[12,"captcha","","",39,null],[17,"V1_API_ROUTES","","",null,null],[17,"DOCS","","",null,null],[17,"PAGES","","",null,null],[3,"Settings","","",null,null],[12,"debug","","",70,null],[12,"database","","",70,null],[12,"redis","","",70,null],[12,"server","","",70,null],[12,"pow","","",70,null],[12,"source_code","","",70,null],[17,"WIDGET_ROUTES","","",null,null],[3,"CheckLogin","","",null,null],[3,"SETTINGS","","",null,null],[12,"__private_field","","",79,null],[3,"FILES","","",null,null],[12,"__private_field","","",80,null],[3,"JS","","",null,null],[12,"__private_field","","",81,null],[3,"CSS","","",null,null],[12,"__private_field","","",82,null],[3,"MOBILE_CSS","","",null,null],[12,"__private_field","","",83,null],[3,"VERIFICATIN_WIDGET_JS","","",null,null],[12,"__private_field","","",84,null],[3,"VERIFICATIN_WIDGET_CSS","","",null,null],[12,"__private_field","","",85,null],[3,"SOURCE_FILES_OF_INSTANCE","","points to source files matching build commit",null,null],[12,"__private_field","","",86,null],[7,"OPEN_API_DOC","","",null,null],[7,"GIT_COMMIT_HASH","","",null,null],[7,"VERSION","","",null,null],[7,"PKG_NAME","","",null,null],[7,"PKG_DESCRIPTION","","",null,null],[7,"PKG_HOMEPAGE","","",null,null],[17,"CACHE_AGE","","",null,null],[6,"AppData","","",null,null],[5,"main","","",null,[[],["result",6]]],[5,"get_json_err","","",null,[[],["jsonconfig",3]]],[5,"get_identity_service","","",null,[[],[["identityservice",3],["cookieidentitypolicy",3]]]],[14,"define_resource","","Defines resoures for [Methods]",null,null],[11,"from","mcaptcha::api::v1::account::delete","",87,[[]]],[11,"into","","",87,[[]]],[11,"borrow","","",87,[[]]],[11,"borrow_mut","","",87,[[]]],[11,"try_from","","",87,[[],["result",4]]],[11,"try_into","","",87,[[],["result",4]]],[11,"type_id","","",87,[[],["typeid",3]]],[11,"vzip","","",87,[[]]],[11,"from","mcaptcha::api::v1::account::email","",0,[[]]],[11,"into","","",0,[[]]],[11,"to_owned","","",0,[[]]],[11,"clone_into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"vzip","","",0,[[]]],[11,"from","","",88,[[]]],[11,"into","","",88,[[]]],[11,"borrow","","",88,[[]]],[11,"borrow_mut","","",88,[[]]],[11,"try_from","","",88,[[],["result",4]]],[11,"try_into","","",88,[[],["result",4]]],[11,"type_id","","",88,[[],["typeid",3]]],[11,"vzip","","",88,[[]]],[11,"from","","",89,[[]]],[11,"into","","",89,[[]]],[11,"borrow","","",89,[[]]],[11,"borrow_mut","","",89,[[]]],[11,"try_from","","",89,[[],["result",4]]],[11,"try_into","","",89,[[],["result",4]]],[11,"type_id","","",89,[[],["typeid",3]]],[11,"vzip","","",89,[[]]],[11,"from","mcaptcha::api::v1::account::secret","",1,[[]]],[11,"into","","",1,[[]]],[11,"to_owned","","",1,[[]]],[11,"clone_into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"vzip","","",1,[[]]],[11,"from","","",90,[[]]],[11,"into","","",90,[[]]],[11,"borrow","","",90,[[]]],[11,"borrow_mut","","",90,[[]]],[11,"try_from","","",90,[[],["result",4]]],[11,"try_into","","",90,[[],["result",4]]],[11,"type_id","","",90,[[],["typeid",3]]],[11,"vzip","","",90,[[]]],[11,"from","","",91,[[]]],[11,"into","","",91,[[]]],[11,"borrow","","",91,[[]]],[11,"borrow_mut","","",91,[[]]],[11,"try_from","","",91,[[],["result",4]]],[11,"try_into","","",91,[[],["result",4]]],[11,"type_id","","",91,[[],["typeid",3]]],[11,"vzip","","",91,[[]]],[11,"from","mcaptcha::api::v1::account::username","",92,[[]]],[11,"into","","",92,[[]]],[11,"borrow","","",92,[[]]],[11,"borrow_mut","","",92,[[]]],[11,"try_from","","",92,[[],["result",4]]],[11,"try_into","","",92,[[],["result",4]]],[11,"type_id","","",92,[[],["typeid",3]]],[11,"vzip","","",92,[[]]],[11,"from","mcaptcha::api::v1::account::routes","",2,[[]]],[11,"into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"vzip","","",2,[[]]],[11,"from","mcaptcha::api::v1::account","",3,[[]]],[11,"into","","",3,[[]]],[11,"to_owned","","",3,[[]]],[11,"clone_into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"vzip","","",3,[[]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"vzip","","",4,[[]]],[11,"from","mcaptcha::api::v1::auth::routes","",5,[[]]],[11,"into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"vzip","","",5,[[]]],[11,"from","mcaptcha::api::v1::auth::runners","",6,[[]]],[11,"into","","",6,[[]]],[11,"to_owned","","",6,[[]]],[11,"clone_into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"vzip","","",6,[[]]],[11,"from","","",7,[[]]],[11,"into","","",7,[[]]],[11,"to_owned","","",7,[[]]],[11,"clone_into","","",7,[[]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"vzip","","",7,[[]]],[11,"from","","",8,[[]]],[11,"into","","",8,[[]]],[11,"to_owned","","",8,[[]]],[11,"clone_into","","",8,[[]]],[11,"borrow","","",8,[[]]],[11,"borrow_mut","","",8,[[]]],[11,"try_from","","",8,[[],["result",4]]],[11,"try_into","","",8,[[],["result",4]]],[11,"type_id","","",8,[[],["typeid",3]]],[11,"vzip","","",8,[[]]],[11,"from","mcaptcha::api::v1::auth","",93,[[]]],[11,"into","","",93,[[]]],[11,"borrow","","",93,[[]]],[11,"borrow_mut","","",93,[[]]],[11,"try_from","","",93,[[],["result",4]]],[11,"try_into","","",93,[[],["result",4]]],[11,"type_id","","",93,[[],["typeid",3]]],[11,"vzip","","",93,[[]]],[11,"from","","",94,[[]]],[11,"into","","",94,[[]]],[11,"borrow","","",94,[[]]],[11,"borrow_mut","","",94,[[]]],[11,"try_from","","",94,[[],["result",4]]],[11,"try_into","","",94,[[],["result",4]]],[11,"type_id","","",94,[[],["typeid",3]]],[11,"vzip","","",94,[[]]],[11,"from","","",95,[[]]],[11,"into","","",95,[[]]],[11,"borrow","","",95,[[]]],[11,"borrow_mut","","",95,[[]]],[11,"try_from","","",95,[[],["result",4]]],[11,"try_into","","",95,[[],["result",4]]],[11,"type_id","","",95,[[],["typeid",3]]],[11,"vzip","","",95,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::captcha::routes","",9,[[]]],[11,"into","","",9,[[]]],[11,"borrow","","",9,[[]]],[11,"borrow_mut","","",9,[[]]],[11,"try_from","","",9,[[],["result",4]]],[11,"try_into","","",9,[[],["result",4]]],[11,"type_id","","",9,[[],["typeid",3]]],[11,"vzip","","",9,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::captcha","",10,[[]]],[11,"into","","",10,[[]]],[11,"to_owned","","",10,[[]]],[11,"clone_into","","",10,[[]]],[11,"borrow","","",10,[[]]],[11,"borrow_mut","","",10,[[]]],[11,"try_from","","",10,[[],["result",4]]],[11,"try_into","","",10,[[],["result",4]]],[11,"type_id","","",10,[[],["typeid",3]]],[11,"vzip","","",10,[[]]],[11,"from","","",11,[[]]],[11,"into","","",11,[[]]],[11,"to_owned","","",11,[[]]],[11,"clone_into","","",11,[[]]],[11,"borrow","","",11,[[]]],[11,"borrow_mut","","",11,[[]]],[11,"try_from","","",11,[[],["result",4]]],[11,"try_into","","",11,[[],["result",4]]],[11,"type_id","","",11,[[],["typeid",3]]],[11,"vzip","","",11,[[]]],[11,"from","","",96,[[]]],[11,"into","","",96,[[]]],[11,"borrow","","",96,[[]]],[11,"borrow_mut","","",96,[[]]],[11,"try_from","","",96,[[],["result",4]]],[11,"try_into","","",96,[[],["result",4]]],[11,"type_id","","",96,[[],["typeid",3]]],[11,"vzip","","",96,[[]]],[11,"from","","",97,[[]]],[11,"into","","",97,[[]]],[11,"borrow","","",97,[[]]],[11,"borrow_mut","","",97,[[]]],[11,"try_from","","",97,[[],["result",4]]],[11,"try_into","","",97,[[],["result",4]]],[11,"type_id","","",97,[[],["typeid",3]]],[11,"vzip","","",97,[[]]],[11,"from","","",98,[[]]],[11,"into","","",98,[[]]],[11,"borrow","","",98,[[]]],[11,"borrow_mut","","",98,[[]]],[11,"try_from","","",98,[[],["result",4]]],[11,"try_into","","",98,[[],["result",4]]],[11,"type_id","","",98,[[],["typeid",3]]],[11,"vzip","","",98,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::duration::routes","",12,[[]]],[11,"into","","",12,[[]]],[11,"borrow","","",12,[[]]],[11,"borrow_mut","","",12,[[]]],[11,"try_from","","",12,[[],["result",4]]],[11,"try_into","","",12,[[],["result",4]]],[11,"type_id","","",12,[[],["typeid",3]]],[11,"vzip","","",12,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::duration","",13,[[]]],[11,"into","","",13,[[]]],[11,"borrow","","",13,[[]]],[11,"borrow_mut","","",13,[[]]],[11,"try_from","","",13,[[],["result",4]]],[11,"try_into","","",13,[[],["result",4]]],[11,"type_id","","",13,[[],["typeid",3]]],[11,"vzip","","",13,[[]]],[11,"from","","",99,[[]]],[11,"into","","",99,[[]]],[11,"borrow","","",99,[[]]],[11,"borrow_mut","","",99,[[]]],[11,"try_from","","",99,[[],["result",4]]],[11,"try_into","","",99,[[],["result",4]]],[11,"type_id","","",99,[[],["typeid",3]]],[11,"vzip","","",99,[[]]],[11,"from","","",14,[[]]],[11,"into","","",14,[[]]],[11,"borrow","","",14,[[]]],[11,"borrow_mut","","",14,[[]]],[11,"try_from","","",14,[[],["result",4]]],[11,"try_into","","",14,[[],["result",4]]],[11,"type_id","","",14,[[],["typeid",3]]],[11,"vzip","","",14,[[]]],[11,"from","","",15,[[]]],[11,"into","","",15,[[]]],[11,"borrow","","",15,[[]]],[11,"borrow_mut","","",15,[[]]],[11,"try_from","","",15,[[],["result",4]]],[11,"try_into","","",15,[[],["result",4]]],[11,"type_id","","",15,[[],["typeid",3]]],[11,"vzip","","",15,[[]]],[11,"from","","",100,[[]]],[11,"into","","",100,[[]]],[11,"borrow","","",100,[[]]],[11,"borrow_mut","","",100,[[]]],[11,"try_from","","",100,[[],["result",4]]],[11,"try_into","","",100,[[],["result",4]]],[11,"type_id","","",100,[[],["typeid",3]]],[11,"vzip","","",100,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::levels::routes","",16,[[]]],[11,"into","","",16,[[]]],[11,"borrow","","",16,[[]]],[11,"borrow_mut","","",16,[[]]],[11,"try_from","","",16,[[],["result",4]]],[11,"try_into","","",16,[[],["result",4]]],[11,"type_id","","",16,[[],["typeid",3]]],[11,"vzip","","",16,[[]]],[11,"from","mcaptcha::api::v1::mcaptcha::levels","",17,[[]]],[11,"into","","",17,[[]]],[11,"borrow","","",17,[[]]],[11,"borrow_mut","","",17,[[]]],[11,"try_from","","",17,[[],["result",4]]],[11,"try_into","","",17,[[],["result",4]]],[11,"type_id","","",17,[[],["typeid",3]]],[11,"vzip","","",17,[[]]],[11,"from","","",101,[[]]],[11,"into","","",101,[[]]],[11,"borrow","","",101,[[]]],[11,"borrow_mut","","",101,[[]]],[11,"try_from","","",101,[[],["result",4]]],[11,"try_into","","",101,[[],["result",4]]],[11,"type_id","","",101,[[],["typeid",3]]],[11,"vzip","","",101,[[]]],[11,"from","","",18,[[]]],[11,"into","","",18,[[]]],[11,"borrow","","",18,[[]]],[11,"borrow_mut","","",18,[[]]],[11,"try_from","","",18,[[],["result",4]]],[11,"try_into","","",18,[[],["result",4]]],[11,"type_id","","",18,[[],["typeid",3]]],[11,"vzip","","",18,[[]]],[11,"from","","",102,[[]]],[11,"into","","",102,[[]]],[11,"borrow","","",102,[[]]],[11,"borrow_mut","","",102,[[]]],[11,"try_from","","",102,[[],["result",4]]],[11,"try_into","","",102,[[],["result",4]]],[11,"type_id","","",102,[[],["typeid",3]]],[11,"vzip","","",102,[[]]],[11,"from","","",103,[[]]],[11,"into","","",103,[[]]],[11,"borrow","","",103,[[]]],[11,"borrow_mut","","",103,[[]]],[11,"try_from","","",103,[[],["result",4]]],[11,"try_into","","",103,[[],["result",4]]],[11,"type_id","","",103,[[],["typeid",3]]],[11,"vzip","","",103,[[]]],[11,"from","","",104,[[]]],[11,"into","","",104,[[]]],[11,"borrow","","",104,[[]]],[11,"borrow_mut","","",104,[[]]],[11,"try_from","","",104,[[],["result",4]]],[11,"try_into","","",104,[[],["result",4]]],[11,"type_id","","",104,[[],["typeid",3]]],[11,"vzip","","",104,[[]]],[11,"from","","",19,[[]]],[11,"into","","",19,[[]]],[11,"to_owned","","",19,[[]]],[11,"clone_into","","",19,[[]]],[11,"borrow","","",19,[[]]],[11,"borrow_mut","","",19,[[]]],[11,"try_from","","",19,[[],["result",4]]],[11,"try_into","","",19,[[],["result",4]]],[11,"type_id","","",19,[[],["typeid",3]]],[11,"vzip","","",19,[[]]],[11,"from","","",20,[[]]],[11,"into","","",20,[[]]],[11,"to_owned","","",20,[[]]],[11,"clone_into","","",20,[[]]],[11,"borrow","","",20,[[]]],[11,"borrow_mut","","",20,[[]]],[11,"try_from","","",20,[[],["result",4]]],[11,"try_into","","",20,[[],["result",4]]],[11,"type_id","","",20,[[],["typeid",3]]],[11,"vzip","","",20,[[]]],[11,"from","mcaptcha::api::v1::meta::routes","",21,[[]]],[11,"into","","",21,[[]]],[11,"borrow","","",21,[[]]],[11,"borrow_mut","","",21,[[]]],[11,"try_from","","",21,[[],["result",4]]],[11,"try_into","","",21,[[],["result",4]]],[11,"type_id","","",21,[[],["typeid",3]]],[11,"vzip","","",21,[[]]],[11,"from","mcaptcha::api::v1::meta","",22,[[]]],[11,"into","","",22,[[]]],[11,"to_owned","","",22,[[]]],[11,"clone_into","","",22,[[]]],[11,"borrow","","",22,[[]]],[11,"borrow_mut","","",22,[[]]],[11,"try_from","","",22,[[],["result",4]]],[11,"try_into","","",22,[[],["result",4]]],[11,"type_id","","",22,[[],["typeid",3]]],[11,"vzip","","",22,[[]]],[11,"from","","",23,[[]]],[11,"into","","",23,[[]]],[11,"to_owned","","",23,[[]]],[11,"clone_into","","",23,[[]]],[11,"borrow","","",23,[[]]],[11,"borrow_mut","","",23,[[]]],[11,"try_from","","",23,[[],["result",4]]],[11,"try_into","","",23,[[],["result",4]]],[11,"type_id","","",23,[[],["typeid",3]]],[11,"vzip","","",23,[[]]],[11,"from","","",24,[[]]],[11,"into","","",24,[[]]],[11,"to_string","","",24,[[],["string",3]]],[11,"borrow","","",24,[[]]],[11,"borrow_mut","","",24,[[]]],[11,"try_from","","",24,[[],["result",4]]],[11,"try_into","","",24,[[],["result",4]]],[11,"type_id","","",24,[[],["typeid",3]]],[11,"vzip","","",24,[[]]],[11,"from","","",105,[[]]],[11,"into","","",105,[[]]],[11,"borrow","","",105,[[]]],[11,"borrow_mut","","",105,[[]]],[11,"try_from","","",105,[[],["result",4]]],[11,"try_into","","",105,[[],["result",4]]],[11,"type_id","","",105,[[],["typeid",3]]],[11,"vzip","","",105,[[]]],[11,"from","","",25,[[]]],[11,"into","","",25,[[]]],[11,"to_owned","","",25,[[]]],[11,"clone_into","","",25,[[]]],[11,"borrow","","",25,[[]]],[11,"borrow_mut","","",25,[[]]],[11,"try_from","","",25,[[],["result",4]]],[11,"try_into","","",25,[[],["result",4]]],[11,"type_id","","",25,[[],["typeid",3]]],[11,"vzip","","",25,[[]]],[11,"from","","",26,[[]]],[11,"into","","",26,[[]]],[11,"to_owned","","",26,[[]]],[11,"clone_into","","",26,[[]]],[11,"borrow","","",26,[[]]],[11,"borrow_mut","","",26,[[]]],[11,"try_from","","",26,[[],["result",4]]],[11,"try_into","","",26,[[],["result",4]]],[11,"type_id","","",26,[[],["typeid",3]]],[11,"vzip","","",26,[[]]],[11,"from","","",27,[[]]],[11,"into","","",27,[[]]],[11,"to_string","","",27,[[],["string",3]]],[11,"borrow","","",27,[[]]],[11,"borrow_mut","","",27,[[]]],[11,"try_from","","",27,[[],["result",4]]],[11,"try_into","","",27,[[],["result",4]]],[11,"type_id","","",27,[[],["typeid",3]]],[11,"vzip","","",27,[[]]],[11,"from","","",106,[[]]],[11,"into","","",106,[[]]],[11,"borrow","","",106,[[]]],[11,"borrow_mut","","",106,[[]]],[11,"try_from","","",106,[[],["result",4]]],[11,"try_into","","",106,[[],["result",4]]],[11,"type_id","","",106,[[],["typeid",3]]],[11,"vzip","","",106,[[]]],[11,"from","mcaptcha::api::v1::notifications::add","",28,[[]]],[11,"into","","",28,[[]]],[11,"borrow","","",28,[[]]],[11,"borrow_mut","","",28,[[]]],[11,"try_from","","",28,[[],["result",4]]],[11,"try_into","","",28,[[],["result",4]]],[11,"type_id","","",28,[[],["typeid",3]]],[11,"vzip","","",28,[[]]],[11,"from","","",107,[[]]],[11,"into","","",107,[[]]],[11,"borrow","","",107,[[]]],[11,"borrow_mut","","",107,[[]]],[11,"try_from","","",107,[[],["result",4]]],[11,"try_into","","",107,[[],["result",4]]],[11,"type_id","","",107,[[],["typeid",3]]],[11,"vzip","","",107,[[]]],[11,"from","mcaptcha::api::v1::notifications::get","",29,[[]]],[11,"into","","",29,[[]]],[11,"borrow","","",29,[[]]],[11,"borrow_mut","","",29,[[]]],[11,"try_from","","",29,[[],["result",4]]],[11,"try_into","","",29,[[],["result",4]]],[11,"type_id","","",29,[[],["typeid",3]]],[11,"vzip","","",29,[[]]],[11,"from","","",30,[[]]],[11,"into","","",30,[[]]],[11,"borrow","","",30,[[]]],[11,"borrow_mut","","",30,[[]]],[11,"try_from","","",30,[[],["result",4]]],[11,"try_into","","",30,[[],["result",4]]],[11,"type_id","","",30,[[],["typeid",3]]],[11,"vzip","","",30,[[]]],[11,"from","","",108,[[]]],[11,"into","","",108,[[]]],[11,"borrow","","",108,[[]]],[11,"borrow_mut","","",108,[[]]],[11,"try_from","","",108,[[],["result",4]]],[11,"try_into","","",108,[[],["result",4]]],[11,"type_id","","",108,[[],["typeid",3]]],[11,"vzip","","",108,[[]]],[11,"from","mcaptcha::api::v1::notifications::mark_read","",31,[[]]],[11,"into","","",31,[[]]],[11,"borrow","","",31,[[]]],[11,"borrow_mut","","",31,[[]]],[11,"try_from","","",31,[[],["result",4]]],[11,"try_into","","",31,[[],["result",4]]],[11,"type_id","","",31,[[],["typeid",3]]],[11,"vzip","","",31,[[]]],[11,"from","","",32,[[]]],[11,"into","","",32,[[]]],[11,"borrow","","",32,[[]]],[11,"borrow_mut","","",32,[[]]],[11,"try_from","","",32,[[],["result",4]]],[11,"try_into","","",32,[[],["result",4]]],[11,"type_id","","",32,[[],["typeid",3]]],[11,"vzip","","",32,[[]]],[11,"from","","",109,[[]]],[11,"into","","",109,[[]]],[11,"borrow","","",109,[[]]],[11,"borrow_mut","","",109,[[]]],[11,"try_from","","",109,[[],["result",4]]],[11,"try_into","","",109,[[],["result",4]]],[11,"type_id","","",109,[[],["typeid",3]]],[11,"vzip","","",109,[[]]],[11,"from","mcaptcha::api::v1::notifications::routes","",33,[[]]],[11,"into","","",33,[[]]],[11,"borrow","","",33,[[]]],[11,"borrow_mut","","",33,[[]]],[11,"try_from","","",33,[[],["result",4]]],[11,"try_into","","",33,[[],["result",4]]],[11,"type_id","","",33,[[],["typeid",3]]],[11,"vzip","","",33,[[]]],[11,"from","mcaptcha::api::v1::pow::get_config","",34,[[]]],[11,"into","","",34,[[]]],[11,"to_owned","","",34,[[]]],[11,"clone_into","","",34,[[]]],[11,"borrow","","",34,[[]]],[11,"borrow_mut","","",34,[[]]],[11,"try_from","","",34,[[],["result",4]]],[11,"try_into","","",34,[[],["result",4]]],[11,"type_id","","",34,[[],["typeid",3]]],[11,"vzip","","",34,[[]]],[11,"from","","",110,[[]]],[11,"into","","",110,[[]]],[11,"borrow","","",110,[[]]],[11,"borrow_mut","","",110,[[]]],[11,"try_from","","",110,[[],["result",4]]],[11,"try_into","","",110,[[],["result",4]]],[11,"type_id","","",110,[[],["typeid",3]]],[11,"vzip","","",110,[[]]],[11,"from","mcaptcha::api::v1::pow::verify_pow","",35,[[]]],[11,"into","","",35,[[]]],[11,"to_owned","","",35,[[]]],[11,"clone_into","","",35,[[]]],[11,"borrow","","",35,[[]]],[11,"borrow_mut","","",35,[[]]],[11,"try_from","","",35,[[],["result",4]]],[11,"try_into","","",35,[[],["result",4]]],[11,"type_id","","",35,[[],["typeid",3]]],[11,"vzip","","",35,[[]]],[11,"from","","",111,[[]]],[11,"into","","",111,[[]]],[11,"borrow","","",111,[[]]],[11,"borrow_mut","","",111,[[]]],[11,"try_from","","",111,[[],["result",4]]],[11,"try_into","","",111,[[],["result",4]]],[11,"type_id","","",111,[[],["typeid",3]]],[11,"vzip","","",111,[[]]],[11,"from","mcaptcha::api::v1::pow::verify_token","",36,[[]]],[11,"into","","",36,[[]]],[11,"to_owned","","",36,[[]]],[11,"clone_into","","",36,[[]]],[11,"borrow","","",36,[[]]],[11,"borrow_mut","","",36,[[]]],[11,"try_from","","",36,[[],["result",4]]],[11,"try_into","","",36,[[],["result",4]]],[11,"type_id","","",36,[[],["typeid",3]]],[11,"vzip","","",36,[[]]],[11,"from","","",112,[[]]],[11,"into","","",112,[[]]],[11,"borrow","","",112,[[]]],[11,"borrow_mut","","",112,[[]]],[11,"try_from","","",112,[[],["result",4]]],[11,"try_into","","",112,[[],["result",4]]],[11,"type_id","","",112,[[],["typeid",3]]],[11,"vzip","","",112,[[]]],[11,"from","mcaptcha::api::v1::pow::routes","",37,[[]]],[11,"into","","",37,[[]]],[11,"borrow","","",37,[[]]],[11,"borrow_mut","","",37,[[]]],[11,"try_from","","",37,[[],["result",4]]],[11,"try_into","","",37,[[],["result",4]]],[11,"type_id","","",37,[[],["typeid",3]]],[11,"vzip","","",37,[[]]],[11,"from","mcaptcha::api::v1::routes","",38,[[]]],[11,"into","","",38,[[]]],[11,"borrow","","",38,[[]]],[11,"borrow_mut","","",38,[[]]],[11,"try_from","","",38,[[],["result",4]]],[11,"try_into","","",38,[[],["result",4]]],[11,"type_id","","",38,[[],["typeid",3]]],[11,"vzip","","",38,[[]]],[11,"from","mcaptcha::data","",39,[[]]],[11,"into","","",39,[[]]],[11,"borrow","","",39,[[]]],[11,"borrow_mut","","",39,[[]]],[11,"try_from","","",39,[[],["result",4]]],[11,"try_into","","",39,[[],["result",4]]],[11,"type_id","","",39,[[],["typeid",3]]],[11,"vzip","","",39,[[]]],[11,"from","","",40,[[]]],[11,"into","","",40,[[]]],[11,"borrow","","",40,[[]]],[11,"borrow_mut","","",40,[[]]],[11,"try_from","","",40,[[],["result",4]]],[11,"try_into","","",40,[[],["result",4]]],[11,"type_id","","",40,[[],["typeid",3]]],[11,"vzip","","",40,[[]]],[11,"from","mcaptcha::docs::routes","",41,[[]]],[11,"into","","",41,[[]]],[11,"borrow","","",41,[[]]],[11,"borrow_mut","","",41,[[]]],[11,"try_from","","",41,[[],["result",4]]],[11,"try_into","","",41,[[],["result",4]]],[11,"type_id","","",41,[[],["typeid",3]]],[11,"vzip","","",41,[[]]],[11,"from","mcaptcha::docs","",42,[[]]],[11,"into","","",42,[[]]],[11,"borrow","","",42,[[]]],[11,"borrow_mut","","",42,[[]]],[11,"try_from","","",42,[[],["result",4]]],[11,"try_into","","",42,[[],["result",4]]],[11,"type_id","","",42,[[],["typeid",3]]],[11,"vzip","","",42,[[]]],[11,"from","mcaptcha::errors","",43,[[]]],[11,"into","","",43,[[]]],[11,"to_string","","",43,[[],["string",3]]],[11,"borrow","","",43,[[]]],[11,"borrow_mut","","",43,[[]]],[11,"try_from","","",43,[[],["result",4]]],[11,"try_into","","",43,[[],["result",4]]],[11,"type_id","","",43,[[],["typeid",3]]],[11,"vzip","","",43,[[]]],[11,"from","","",44,[[]]],[11,"into","","",44,[[]]],[11,"borrow","","",44,[[]]],[11,"borrow_mut","","",44,[[]]],[11,"try_from","","",44,[[],["result",4]]],[11,"try_into","","",44,[[],["result",4]]],[11,"type_id","","",44,[[],["typeid",3]]],[11,"vzip","","",44,[[]]],[11,"from","","",45,[[]]],[11,"into","","",45,[[]]],[11,"to_string","","",45,[[],["string",3]]],[11,"borrow","","",45,[[]]],[11,"borrow_mut","","",45,[[]]],[11,"try_from","","",45,[[],["result",4]]],[11,"try_into","","",45,[[],["result",4]]],[11,"type_id","","",45,[[],["typeid",3]]],[11,"vzip","","",45,[[]]],[11,"from","mcaptcha::middleware::auth","",113,[[]]],[11,"into","","",113,[[]]],[11,"borrow","","",113,[[]]],[11,"borrow_mut","","",113,[[]]],[11,"try_from","","",113,[[],["result",4]]],[11,"try_into","","",113,[[],["result",4]]],[11,"type_id","","",113,[[],["typeid",3]]],[11,"vzip","","",113,[[]]],[11,"from","","",46,[[]]],[11,"into","","",46,[[]]],[11,"borrow","","",46,[[]]],[11,"borrow_mut","","",46,[[]]],[11,"try_from","","",46,[[],["result",4]]],[11,"try_into","","",46,[[],["result",4]]],[11,"type_id","","",46,[[],["typeid",3]]],[11,"into_service","","",46,[[]]],[11,"vzip","","",46,[[]]],[11,"from","mcaptcha::pages::auth::login","",114,[[]]],[11,"into","","",114,[[]]],[11,"to_owned","","",114,[[]]],[11,"clone_into","","",114,[[]]],[11,"borrow","","",114,[[]]],[11,"borrow_mut","","",114,[[]]],[11,"try_from","","",114,[[],["result",4]]],[11,"try_into","","",114,[[],["result",4]]],[11,"type_id","","",114,[[],["typeid",3]]],[11,"vzip","","",114,[[]]],[11,"from","","",47,[[]]],[11,"into","","",47,[[]]],[11,"borrow","","",47,[[]]],[11,"borrow_mut","","",47,[[]]],[11,"try_from","","",47,[[],["result",4]]],[11,"try_into","","",47,[[],["result",4]]],[11,"type_id","","",47,[[],["typeid",3]]],[11,"vzip","","",47,[[]]],[11,"from","","",115,[[]]],[11,"into","","",115,[[]]],[11,"borrow","","",115,[[]]],[11,"borrow_mut","","",115,[[]]],[11,"try_from","","",115,[[],["result",4]]],[11,"try_into","","",115,[[],["result",4]]],[11,"type_id","","",115,[[],["typeid",3]]],[11,"vzip","","",115,[[]]],[11,"from","mcaptcha::pages::auth::register","",116,[[]]],[11,"into","","",116,[[]]],[11,"to_owned","","",116,[[]]],[11,"clone_into","","",116,[[]]],[11,"borrow","","",116,[[]]],[11,"borrow_mut","","",116,[[]]],[11,"try_from","","",116,[[],["result",4]]],[11,"try_into","","",116,[[],["result",4]]],[11,"type_id","","",116,[[],["typeid",3]]],[11,"vzip","","",116,[[]]],[11,"from","","",48,[[]]],[11,"into","","",48,[[]]],[11,"borrow","","",48,[[]]],[11,"borrow_mut","","",48,[[]]],[11,"try_from","","",48,[[],["result",4]]],[11,"try_into","","",48,[[],["result",4]]],[11,"type_id","","",48,[[],["typeid",3]]],[11,"vzip","","",48,[[]]],[11,"from","","",117,[[]]],[11,"into","","",117,[[]]],[11,"borrow","","",117,[[]]],[11,"borrow_mut","","",117,[[]]],[11,"try_from","","",117,[[],["result",4]]],[11,"try_into","","",117,[[],["result",4]]],[11,"type_id","","",117,[[],["typeid",3]]],[11,"vzip","","",117,[[]]],[11,"from","mcaptcha::pages::auth::routes","",49,[[]]],[11,"into","","",49,[[]]],[11,"borrow","","",49,[[]]],[11,"borrow_mut","","",49,[[]]],[11,"try_from","","",49,[[],["result",4]]],[11,"try_into","","",49,[[],["result",4]]],[11,"type_id","","",49,[[],["typeid",3]]],[11,"vzip","","",49,[[]]],[11,"from","mcaptcha::pages::errors::routes","",50,[[]]],[11,"into","","",50,[[]]],[11,"borrow","","",50,[[]]],[11,"borrow_mut","","",50,[[]]],[11,"try_from","","",50,[[],["result",4]]],[11,"try_into","","",50,[[],["result",4]]],[11,"type_id","","",50,[[],["typeid",3]]],[11,"vzip","","",50,[[]]],[11,"from","mcaptcha::pages::errors","",51,[[]]],[11,"into","","",51,[[]]],[11,"to_owned","","",51,[[]]],[11,"clone_into","","",51,[[]]],[11,"borrow","","",51,[[]]],[11,"borrow_mut","","",51,[[]]],[11,"try_from","","",51,[[],["result",4]]],[11,"try_into","","",51,[[],["result",4]]],[11,"type_id","","",51,[[],["typeid",3]]],[11,"vzip","","",51,[[]]],[11,"from","","",52,[[]]],[11,"into","","",52,[[]]],[11,"borrow","","",52,[[]]],[11,"borrow_mut","","",52,[[]]],[11,"try_from","","",52,[[],["result",4]]],[11,"try_into","","",52,[[],["result",4]]],[11,"type_id","","",52,[[],["typeid",3]]],[11,"vzip","","",52,[[]]],[11,"from","","",53,[[]]],[11,"into","","",53,[[]]],[11,"borrow","","",53,[[]]],[11,"borrow_mut","","",53,[[]]],[11,"try_from","","",53,[[],["result",4]]],[11,"try_into","","",53,[[],["result",4]]],[11,"type_id","","",53,[[],["typeid",3]]],[11,"vzip","","",53,[[]]],[11,"from","mcaptcha::pages::panel::sitekey::add","",54,[[]]],[11,"into","","",54,[[]]],[11,"borrow","","",54,[[]]],[11,"borrow_mut","","",54,[[]]],[11,"try_from","","",54,[[],["result",4]]],[11,"try_into","","",54,[[],["result",4]]],[11,"type_id","","",54,[[],["typeid",3]]],[11,"vzip","","",54,[[]]],[11,"from","","",55,[[]]],[11,"into","","",55,[[]]],[11,"to_owned","","",55,[[]]],[11,"clone_into","","",55,[[]]],[11,"borrow","","",55,[[]]],[11,"borrow_mut","","",55,[[]]],[11,"try_from","","",55,[[],["result",4]]],[11,"try_into","","",55,[[],["result",4]]],[11,"type_id","","",55,[[],["typeid",3]]],[11,"vzip","","",55,[[]]],[11,"from","","",118,[[]]],[11,"into","","",118,[[]]],[11,"borrow","","",118,[[]]],[11,"borrow_mut","","",118,[[]]],[11,"try_from","","",118,[[],["result",4]]],[11,"try_into","","",118,[[],["result",4]]],[11,"type_id","","",118,[[],["typeid",3]]],[11,"vzip","","",118,[[]]],[11,"from","mcaptcha::pages::panel::sitekey::list","",56,[[]]],[11,"into","","",56,[[]]],[11,"to_owned","","",56,[[]]],[11,"clone_into","","",56,[[]]],[11,"borrow","","",56,[[]]],[11,"borrow_mut","","",56,[[]]],[11,"try_from","","",56,[[],["result",4]]],[11,"try_into","","",56,[[],["result",4]]],[11,"type_id","","",56,[[],["typeid",3]]],[11,"vzip","","",56,[[]]],[11,"from","","",119,[[]]],[11,"into","","",119,[[]]],[11,"borrow","","",119,[[]]],[11,"borrow_mut","","",119,[[]]],[11,"try_from","","",119,[[],["result",4]]],[11,"try_into","","",119,[[],["result",4]]],[11,"type_id","","",119,[[],["typeid",3]]],[11,"vzip","","",119,[[]]],[11,"from","mcaptcha::pages::panel::sitekey::view","",57,[[]]],[11,"into","","",57,[[]]],[11,"to_owned","","",57,[[]]],[11,"clone_into","","",57,[[]]],[11,"borrow","","",57,[[]]],[11,"borrow_mut","","",57,[[]]],[11,"try_from","","",57,[[],["result",4]]],[11,"try_into","","",57,[[],["result",4]]],[11,"type_id","","",57,[[],["typeid",3]]],[11,"vzip","","",57,[[]]],[11,"from","","",58,[[]]],[11,"into","","",58,[[]]],[11,"to_owned","","",58,[[]]],[11,"clone_into","","",58,[[]]],[11,"borrow","","",58,[[]]],[11,"borrow_mut","","",58,[[]]],[11,"try_from","","",58,[[],["result",4]]],[11,"try_into","","",58,[[],["result",4]]],[11,"type_id","","",58,[[],["typeid",3]]],[11,"vzip","","",58,[[]]],[11,"from","","",59,[[]]],[11,"into","","",59,[[]]],[11,"to_owned","","",59,[[]]],[11,"clone_into","","",59,[[]]],[11,"borrow","","",59,[[]]],[11,"borrow_mut","","",59,[[]]],[11,"try_from","","",59,[[],["result",4]]],[11,"try_into","","",59,[[],["result",4]]],[11,"type_id","","",59,[[],["typeid",3]]],[11,"vzip","","",59,[[]]],[11,"from","","",120,[[]]],[11,"into","","",120,[[]]],[11,"borrow","","",120,[[]]],[11,"borrow_mut","","",120,[[]]],[11,"try_from","","",120,[[],["result",4]]],[11,"try_into","","",120,[[],["result",4]]],[11,"type_id","","",120,[[],["typeid",3]]],[11,"vzip","","",120,[[]]],[11,"from","mcaptcha::pages::panel::sitekey::routes","",60,[[]]],[11,"into","","",60,[[]]],[11,"borrow","","",60,[[]]],[11,"borrow_mut","","",60,[[]]],[11,"try_from","","",60,[[],["result",4]]],[11,"try_into","","",60,[[],["result",4]]],[11,"type_id","","",60,[[],["typeid",3]]],[11,"vzip","","",60,[[]]],[11,"from","mcaptcha::pages::panel::routes","",61,[[]]],[11,"into","","",61,[[]]],[11,"borrow","","",61,[[]]],[11,"borrow_mut","","",61,[[]]],[11,"try_from","","",61,[[],["result",4]]],[11,"try_into","","",61,[[],["result",4]]],[11,"type_id","","",61,[[],["typeid",3]]],[11,"vzip","","",61,[[]]],[11,"from","mcaptcha::pages::panel","",62,[[]]],[11,"into","","",62,[[]]],[11,"to_owned","","",62,[[]]],[11,"clone_into","","",62,[[]]],[11,"borrow","","",62,[[]]],[11,"borrow_mut","","",62,[[]]],[11,"try_from","","",62,[[],["result",4]]],[11,"try_into","","",62,[[],["result",4]]],[11,"type_id","","",62,[[],["typeid",3]]],[11,"vzip","","",62,[[]]],[11,"from","","",121,[[]]],[11,"into","","",121,[[]]],[11,"borrow","","",121,[[]]],[11,"borrow_mut","","",121,[[]]],[11,"try_from","","",121,[[],["result",4]]],[11,"try_into","","",121,[[],["result",4]]],[11,"type_id","","",121,[[],["typeid",3]]],[11,"vzip","","",121,[[]]],[11,"from","mcaptcha::pages::routes","",63,[[]]],[11,"into","","",63,[[]]],[11,"borrow","","",63,[[]]],[11,"borrow_mut","","",63,[[]]],[11,"try_from","","",63,[[],["result",4]]],[11,"try_into","","",63,[[],["result",4]]],[11,"type_id","","",63,[[],["typeid",3]]],[11,"vzip","","",63,[[]]],[11,"from","mcaptcha::routes","",64,[[]]],[11,"into","","",64,[[]]],[11,"borrow","","",64,[[]]],[11,"borrow_mut","","",64,[[]]],[11,"try_from","","",64,[[],["result",4]]],[11,"try_into","","",64,[[],["result",4]]],[11,"type_id","","",64,[[],["typeid",3]]],[11,"vzip","","",64,[[]]],[11,"from","mcaptcha::settings","",65,[[]]],[11,"into","","",65,[[]]],[11,"to_owned","","",65,[[]]],[11,"clone_into","","",65,[[]]],[11,"borrow","","",65,[[]]],[11,"borrow_mut","","",65,[[]]],[11,"try_from","","",65,[[],["result",4]]],[11,"try_into","","",65,[[],["result",4]]],[11,"type_id","","",65,[[],["typeid",3]]],[11,"vzip","","",65,[[]]],[11,"from","","",66,[[]]],[11,"into","","",66,[[]]],[11,"to_owned","","",66,[[]]],[11,"clone_into","","",66,[[]]],[11,"borrow","","",66,[[]]],[11,"borrow_mut","","",66,[[]]],[11,"try_from","","",66,[[],["result",4]]],[11,"try_into","","",66,[[],["result",4]]],[11,"type_id","","",66,[[],["typeid",3]]],[11,"vzip","","",66,[[]]],[11,"from","","",67,[[]]],[11,"into","","",67,[[]]],[11,"to_owned","","",67,[[]]],[11,"clone_into","","",67,[[]]],[11,"borrow","","",67,[[]]],[11,"borrow_mut","","",67,[[]]],[11,"try_from","","",67,[[],["result",4]]],[11,"try_into","","",67,[[],["result",4]]],[11,"type_id","","",67,[[],["typeid",3]]],[11,"vzip","","",67,[[]]],[11,"from","","",68,[[]]],[11,"into","","",68,[[]]],[11,"to_owned","","",68,[[]]],[11,"clone_into","","",68,[[]]],[11,"borrow","","",68,[[]]],[11,"borrow_mut","","",68,[[]]],[11,"try_from","","",68,[[],["result",4]]],[11,"try_into","","",68,[[],["result",4]]],[11,"type_id","","",68,[[],["typeid",3]]],[11,"vzip","","",68,[[]]],[11,"from","","",69,[[]]],[11,"into","","",69,[[]]],[11,"to_owned","","",69,[[]]],[11,"clone_into","","",69,[[]]],[11,"borrow","","",69,[[]]],[11,"borrow_mut","","",69,[[]]],[11,"try_from","","",69,[[],["result",4]]],[11,"try_into","","",69,[[],["result",4]]],[11,"type_id","","",69,[[],["typeid",3]]],[11,"vzip","","",69,[[]]],[11,"from","","",70,[[]]],[11,"into","","",70,[[]]],[11,"to_owned","","",70,[[]]],[11,"clone_into","","",70,[[]]],[11,"borrow","","",70,[[]]],[11,"borrow_mut","","",70,[[]]],[11,"try_from","","",70,[[],["result",4]]],[11,"try_into","","",70,[[],["result",4]]],[11,"type_id","","",70,[[],["typeid",3]]],[11,"vzip","","",70,[[]]],[11,"from","mcaptcha::static_assets::filemap","",71,[[]]],[11,"into","","",71,[[]]],[11,"borrow","","",71,[[]]],[11,"borrow_mut","","",71,[[]]],[11,"try_from","","",71,[[],["result",4]]],[11,"try_into","","",71,[[],["result",4]]],[11,"type_id","","",71,[[],["typeid",3]]],[11,"vzip","","",71,[[]]],[11,"from","mcaptcha::static_assets::static_files","",72,[[]]],[11,"into","","",72,[[]]],[11,"borrow","","",72,[[]]],[11,"borrow_mut","","",72,[[]]],[11,"try_from","","",72,[[],["result",4]]],[11,"try_into","","",72,[[],["result",4]]],[11,"type_id","","",72,[[],["typeid",3]]],[11,"vzip","","",72,[[]]],[11,"from","","",122,[[]]],[11,"into","","",122,[[]]],[11,"borrow","","",122,[[]]],[11,"borrow_mut","","",122,[[]]],[11,"try_from","","",122,[[],["result",4]]],[11,"try_into","","",122,[[],["result",4]]],[11,"type_id","","",122,[[],["typeid",3]]],[11,"vzip","","",122,[[]]],[11,"from","","",73,[[]]],[11,"into","","",73,[[]]],[11,"borrow","","",73,[[]]],[11,"borrow_mut","","",73,[[]]],[11,"try_from","","",73,[[],["result",4]]],[11,"try_into","","",73,[[],["result",4]]],[11,"type_id","","",73,[[],["typeid",3]]],[11,"vzip","","",73,[[]]],[11,"from","","",123,[[]]],[11,"into","","",123,[[]]],[11,"borrow","","",123,[[]]],[11,"borrow_mut","","",123,[[]]],[11,"try_from","","",123,[[],["result",4]]],[11,"try_into","","",123,[[],["result",4]]],[11,"type_id","","",123,[[],["typeid",3]]],[11,"vzip","","",123,[[]]],[11,"from","mcaptcha::stats::fetch","",74,[[]]],[11,"into","","",74,[[]]],[11,"to_owned","","",74,[[]]],[11,"clone_into","","",74,[[]]],[11,"borrow","","",74,[[]]],[11,"borrow_mut","","",74,[[]]],[11,"try_from","","",74,[[],["result",4]]],[11,"try_into","","",74,[[],["result",4]]],[11,"type_id","","",74,[[],["typeid",3]]],[11,"vzip","","",74,[[]]],[11,"from","mcaptcha::widget::routes","",75,[[]]],[11,"into","","",75,[[]]],[11,"borrow","","",75,[[]]],[11,"borrow_mut","","",75,[[]]],[11,"try_from","","",75,[[],["result",4]]],[11,"try_into","","",75,[[],["result",4]]],[11,"type_id","","",75,[[],["typeid",3]]],[11,"vzip","","",75,[[]]],[11,"from","mcaptcha::widget","",76,[[]]],[11,"into","","",76,[[]]],[11,"to_owned","","",76,[[]]],[11,"clone_into","","",76,[[]]],[11,"borrow","","",76,[[]]],[11,"borrow_mut","","",76,[[]]],[11,"try_from","","",76,[[],["result",4]]],[11,"try_into","","",76,[[],["result",4]]],[11,"type_id","","",76,[[],["typeid",3]]],[11,"vzip","","",76,[[]]],[11,"from","","",77,[[]]],[11,"into","","",77,[[]]],[11,"borrow","","",77,[[]]],[11,"borrow_mut","","",77,[[]]],[11,"try_from","","",77,[[],["result",4]]],[11,"try_into","","",77,[[],["result",4]]],[11,"type_id","","",77,[[],["typeid",3]]],[11,"vzip","","",77,[[]]],[11,"from","","",124,[[]]],[11,"into","","",124,[[]]],[11,"borrow","","",124,[[]]],[11,"borrow_mut","","",124,[[]]],[11,"try_from","","",124,[[],["result",4]]],[11,"try_into","","",124,[[],["result",4]]],[11,"type_id","","",124,[[],["typeid",3]]],[11,"vzip","","",124,[[]]],[11,"from","","",78,[[]]],[11,"into","","",78,[[]]],[11,"borrow","","",78,[[]]],[11,"borrow_mut","","",78,[[]]],[11,"try_from","","",78,[[],["result",4]]],[11,"try_into","","",78,[[],["result",4]]],[11,"type_id","","",78,[[],["typeid",3]]],[11,"vzip","","",78,[[]]],[11,"from","","",125,[[]]],[11,"into","","",125,[[]]],[11,"borrow","","",125,[[]]],[11,"borrow_mut","","",125,[[]]],[11,"try_from","","",125,[[],["result",4]]],[11,"try_into","","",125,[[],["result",4]]],[11,"type_id","","",125,[[],["typeid",3]]],[11,"vzip","","",125,[[]]],[11,"from","mcaptcha","",79,[[]]],[11,"into","","",79,[[]]],[11,"borrow","","",79,[[]]],[11,"borrow_mut","","",79,[[]]],[11,"try_from","","",79,[[],["result",4]]],[11,"try_into","","",79,[[],["result",4]]],[11,"type_id","","",79,[[],["typeid",3]]],[11,"vzip","","",79,[[]]],[11,"from","","",80,[[]]],[11,"into","","",80,[[]]],[11,"borrow","","",80,[[]]],[11,"borrow_mut","","",80,[[]]],[11,"try_from","","",80,[[],["result",4]]],[11,"try_into","","",80,[[],["result",4]]],[11,"type_id","","",80,[[],["typeid",3]]],[11,"vzip","","",80,[[]]],[11,"from","","",81,[[]]],[11,"into","","",81,[[]]],[11,"borrow","","",81,[[]]],[11,"borrow_mut","","",81,[[]]],[11,"try_from","","",81,[[],["result",4]]],[11,"try_into","","",81,[[],["result",4]]],[11,"type_id","","",81,[[],["typeid",3]]],[11,"vzip","","",81,[[]]],[11,"from","","",82,[[]]],[11,"into","","",82,[[]]],[11,"borrow","","",82,[[]]],[11,"borrow_mut","","",82,[[]]],[11,"try_from","","",82,[[],["result",4]]],[11,"try_into","","",82,[[],["result",4]]],[11,"type_id","","",82,[[],["typeid",3]]],[11,"vzip","","",82,[[]]],[11,"from","","",83,[[]]],[11,"into","","",83,[[]]],[11,"borrow","","",83,[[]]],[11,"borrow_mut","","",83,[[]]],[11,"try_from","","",83,[[],["result",4]]],[11,"try_into","","",83,[[],["result",4]]],[11,"type_id","","",83,[[],["typeid",3]]],[11,"vzip","","",83,[[]]],[11,"from","","",84,[[]]],[11,"into","","",84,[[]]],[11,"borrow","","",84,[[]]],[11,"borrow_mut","","",84,[[]]],[11,"try_from","","",84,[[],["result",4]]],[11,"try_into","","",84,[[],["result",4]]],[11,"type_id","","",84,[[],["typeid",3]]],[11,"vzip","","",84,[[]]],[11,"from","","",85,[[]]],[11,"into","","",85,[[]]],[11,"borrow","","",85,[[]]],[11,"borrow_mut","","",85,[[]]],[11,"try_from","","",85,[[],["result",4]]],[11,"try_into","","",85,[[],["result",4]]],[11,"type_id","","",85,[[],["typeid",3]]],[11,"vzip","","",85,[[]]],[11,"from","","",86,[[]]],[11,"into","","",86,[[]]],[11,"borrow","","",86,[[]]],[11,"borrow_mut","","",86,[[]]],[11,"try_from","","",86,[[],["result",4]]],[11,"try_into","","",86,[[],["result",4]]],[11,"type_id","","",86,[[],["typeid",3]]],[11,"vzip","","",86,[[]]],[11,"from","mcaptcha::api::v1::meta","",24,[[["uninitializedfielderror",3]]]],[11,"from","","",24,[[["string",3]]]],[11,"from","","",27,[[["uninitializedfielderror",3]]]],[11,"from","","",27,[[["string",3]]]],[11,"from","mcaptcha::api::v1::notifications::get","",30,[[["notification",3]]]],[11,"from","mcaptcha::errors","",43,[[["credserror",4]],["serviceerror",4]]],[11,"from","","",43,[[["validationerrors",3]],["serviceerror",4]]],[11,"from","","",43,[[["parseerror",4]],["serviceerror",4]]],[11,"from","","",43,[[["captchaerror",4]],["serviceerror",4]]],[11,"from","","",43,[[["error",4]]]],[11,"from","","",45,[[["error",4]]]],[11,"from","","",45,[[["serviceerror",4]]]],[11,"clone","mcaptcha::api::v1::account::email","",0,[[],["email",3]]],[11,"clone","mcaptcha::api::v1::account::secret","",1,[[],["secret",3]]],[11,"clone","mcaptcha::api::v1::account","",3,[[],["accountcheckpayload",3]]],[11,"clone","","",4,[[],["accountcheckresp",3]]],[11,"clone","mcaptcha::api::v1::auth::runners","",6,[[],["register",3]]],[11,"clone","","",7,[[],["login",3]]],[11,"clone","","",8,[[],["password",3]]],[11,"clone","mcaptcha::api::v1::mcaptcha::captcha","",10,[[],["mcaptchaid",3]]],[11,"clone","","",11,[[],["mcaptchadetails",3]]],[11,"clone","mcaptcha::api::v1::mcaptcha::levels","",19,[[],["levels",3]]],[11,"clone","","",20,[[],["i32levels",3]]],[11,"clone","mcaptcha::api::v1::meta","",22,[[],["builddetails",3]]],[11,"clone","","",23,[[],["builddetailsbuilder",3]]],[11,"clone","","",25,[[],["health",3]]],[11,"clone","","",26,[[],["healthbuilder",3]]],[11,"clone","mcaptcha::api::v1::pow::get_config","",34,[[],["getconfigpayload",3]]],[11,"clone","mcaptcha::api::v1::pow::verify_pow","",35,[[],["validationtoken",3]]],[11,"clone","mcaptcha::api::v1::pow::verify_token","",36,[[],["captchavalidateresp",3]]],[11,"clone","mcaptcha::pages::auth::login","",114,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::auth::register","",116,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::errors","",51,[[],["errorpage",3]]],[11,"clone","mcaptcha::pages::panel::sitekey::add","",55,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::panel::sitekey::list","",56,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::panel::sitekey::view","",57,[[],["mcaptchaconfig",3]]],[11,"clone","","",58,[[],["level",3]]],[11,"clone","","",59,[[],["indexpage",3]]],[11,"clone","mcaptcha::pages::panel","",62,[[],["indexpage",3]]],[11,"clone","mcaptcha::settings","",65,[[],["server",3]]],[11,"clone","","",66,[[],["captcha",3]]],[11,"clone","","",67,[[],["databasebuilder",3]]],[11,"clone","","",68,[[],["database",3]]],[11,"clone","","",69,[[],["redis",3]]],[11,"clone","","",70,[[],["settings",3]]],[11,"clone","mcaptcha::stats::fetch","",74,[[],["stats",3]]],[11,"clone","mcaptcha::widget","",76,[[],["indexpage",3]]],[11,"default","mcaptcha::api::v1::meta","",23,[[]]],[11,"default","","",26,[[]]],[11,"default","mcaptcha::pages::auth::login","",114,[[]]],[11,"default","mcaptcha::pages::auth::register","",116,[[]]],[11,"default","mcaptcha::pages::panel::sitekey::add","",55,[[]]],[11,"eq","mcaptcha::errors","",43,[[["serviceerror",4]],["bool",15]]],[11,"ne","","",43,[[["serviceerror",4]],["bool",15]]],[11,"eq","","",45,[[["pageerror",4]],["bool",15]]],[11,"ne","","",45,[[["pageerror",4]],["bool",15]]],[11,"deref","mcaptcha::pages::auth::login","",47,[[],["string",3]]],[11,"deref","mcaptcha::pages::auth::register","",48,[[],["string",3]]],[11,"deref","mcaptcha::pages::errors","",52,[[],["string",3]]],[11,"deref","","",53,[[],["string",3]]],[11,"deref","mcaptcha::pages::panel::sitekey::add","",54,[[],["string",3]]],[11,"deref","mcaptcha::widget","",77,[[],["string",3]]],[11,"deref","mcaptcha","",79,[[],["settings",3]]],[11,"deref","","",80,[[],["filemap",3]]],[11,"deref","","",81,[[],["str",15]]],[11,"deref","","",82,[[],["str",15]]],[11,"deref","","",83,[[],["str",15]]],[11,"deref","","",84,[[],["str",15]]],[11,"deref","","",85,[[],["str",15]]],[11,"deref","","",86,[[],["string",3]]],[11,"fmt","mcaptcha::api::v1::account::email","",0,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::account::secret","",1,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::account","",3,[[["formatter",3]],["result",6]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::auth::runners","",6,[[["formatter",3]],["result",6]]],[11,"fmt","","",7,[[["formatter",3]],["result",6]]],[11,"fmt","","",8,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::mcaptcha::captcha","",10,[[["formatter",3]],["result",6]]],[11,"fmt","","",11,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::mcaptcha::levels","",19,[[["formatter",3]],["result",6]]],[11,"fmt","","",20,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::meta","",22,[[["formatter",3]],["result",6]]],[11,"fmt","","",24,[[["formatter",3]],["result",6]]],[11,"fmt","","",25,[[["formatter",3]],["result",6]]],[11,"fmt","","",27,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::pow::get_config","",34,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::pow::verify_pow","",35,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::pow::verify_token","",36,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::errors","",43,[[["formatter",3]],["result",6]]],[11,"fmt","","",45,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::settings","",65,[[["formatter",3]],["result",6]]],[11,"fmt","","",66,[[["formatter",3]],["result",6]]],[11,"fmt","","",67,[[["formatter",3]],["result",6]]],[11,"fmt","","",68,[[["formatter",3]],["result",6]]],[11,"fmt","","",69,[[["formatter",3]],["result",6]]],[11,"fmt","","",70,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::stats::fetch","",74,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::api::v1::meta","",24,[[["formatter",3]],["result",6]]],[11,"fmt","","",27,[[["formatter",3]],["result",6]]],[11,"fmt","mcaptcha::errors","",43,[[["formatter",3]],["result",6]]],[11,"fmt","","",45,[[["formatter",3]],["result",6]]],[11,"source","","",43,[[],[["option",4],["error",8]]]],[11,"source","","",45,[[],[["option",4],["error",8]]]],[11,"poll_ready","mcaptcha::middleware::auth","",46,[[["context",3]],[["result",4],["poll",4]]]],[11,"call","","",46,[[["servicerequest",3]]]],[11,"new_transform","","",113,[[]]],[11,"deserialize","mcaptcha::api::v1::account::email","",0,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::account::secret","",1,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::account","",3,[[],["result",4]]],[11,"deserialize","","",4,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::auth::runners","",6,[[],["result",4]]],[11,"deserialize","","",7,[[],["result",4]]],[11,"deserialize","","",8,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::mcaptcha::captcha","",10,[[],["result",4]]],[11,"deserialize","","",11,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::mcaptcha::duration","",13,[[],["result",4]]],[11,"deserialize","","",14,[[],["result",4]]],[11,"deserialize","","",15,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::mcaptcha::levels","",17,[[],["result",4]]],[11,"deserialize","","",18,[[],["result",4]]],[11,"deserialize","","",19,[[],["result",4]]],[11,"deserialize","","",20,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::meta","",22,[[],["result",4]]],[11,"deserialize","","",25,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::notifications::add","",28,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::notifications::get","",30,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::notifications::mark_read","",31,[[],["result",4]]],[11,"deserialize","","",32,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::pow::get_config","",34,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::pow::verify_pow","",35,[[],["result",4]]],[11,"deserialize","mcaptcha::api::v1::pow::verify_token","",36,[[],["result",4]]],[11,"deserialize","mcaptcha::errors","",44,[[],["result",4]]],[11,"deserialize","mcaptcha::settings","",65,[[],["result",4]]],[11,"deserialize","","",66,[[],["result",4]]],[11,"deserialize","","",67,[[],["result",4]]],[11,"deserialize","","",68,[[],["result",4]]],[11,"deserialize","","",69,[[],["result",4]]],[11,"deserialize","","",70,[[],["result",4]]],[11,"deserialize","mcaptcha::stats::fetch","",74,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::account::email","",0,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::account::secret","",1,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::account","",3,[[],["result",4]]],[11,"serialize","","",4,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::auth::runners","",6,[[],["result",4]]],[11,"serialize","","",7,[[],["result",4]]],[11,"serialize","","",8,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::mcaptcha::captcha","",10,[[],["result",4]]],[11,"serialize","","",11,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::mcaptcha::duration","",13,[[],["result",4]]],[11,"serialize","","",14,[[],["result",4]]],[11,"serialize","","",15,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::mcaptcha::levels","",17,[[],["result",4]]],[11,"serialize","","",18,[[],["result",4]]],[11,"serialize","","",19,[[],["result",4]]],[11,"serialize","","",20,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::meta","",22,[[],["result",4]]],[11,"serialize","","",25,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::notifications::add","",28,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::notifications::get","",30,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::notifications::mark_read","",31,[[],["result",4]]],[11,"serialize","","",32,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::pow::get_config","",34,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::pow::verify_pow","",35,[[],["result",4]]],[11,"serialize","mcaptcha::api::v1::pow::verify_token","",36,[[],["result",4]]],[11,"serialize","mcaptcha::errors","",44,[[],["result",4]]],[11,"serialize","mcaptcha::stats::fetch","",74,[[],["result",4]]],[11,"register","mcaptcha::api::v1::account::delete","",87,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::account::email","",88,[[["appservice",3]]]],[11,"register","","",89,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::account::secret","",90,[[["appservice",3]]]],[11,"register","","",91,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::account::username","",92,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::auth","",93,[[["appservice",3]]]],[11,"register","","",94,[[["appservice",3]]]],[11,"register","","",95,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::mcaptcha::captcha","",96,[[["appservice",3]]]],[11,"register","","",97,[[["appservice",3]]]],[11,"register","","",98,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::mcaptcha::duration","",99,[[["appservice",3]]]],[11,"register","","",100,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::mcaptcha::levels","",101,[[["appservice",3]]]],[11,"register","","",102,[[["appservice",3]]]],[11,"register","","",103,[[["appservice",3]]]],[11,"register","","",104,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::meta","",105,[[["appservice",3]]]],[11,"register","","",106,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::notifications::add","",107,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::notifications::get","",108,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::notifications::mark_read","",109,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::pow::get_config","",110,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::pow::verify_pow","",111,[[["appservice",3]]]],[11,"register","mcaptcha::api::v1::pow::verify_token","",112,[[["appservice",3]]]],[11,"register","mcaptcha::pages::auth::login","",115,[[["appservice",3]]]],[11,"register","mcaptcha::pages::auth::register","",117,[[["appservice",3]]]],[11,"register","mcaptcha::pages::panel::sitekey::add","",118,[[["appservice",3]]]],[11,"register","mcaptcha::pages::panel::sitekey::list","",119,[[["appservice",3]]]],[11,"register","mcaptcha::pages::panel::sitekey::view","",120,[[["appservice",3]]]],[11,"register","mcaptcha::pages::panel","",121,[[["appservice",3]]]],[11,"register","mcaptcha::static_assets::static_files","",122,[[["appservice",3]]]],[11,"register","","",123,[[["appservice",3]]]],[11,"register","mcaptcha::widget","",124,[[["appservice",3]]]],[11,"register","","",125,[[["appservice",3]]]],[11,"error_response","mcaptcha::errors","",43,[[],["httpresponse",3]]],[11,"status_code","","",43,[[],["statuscode",3]]],[11,"error_response","","",45,[[],["httpresponse",3]]],[11,"status_code","","",45,[[],["statuscode",3]]],[11,"initialize","mcaptcha::pages::auth::login","",47,[[]]],[11,"initialize","mcaptcha::pages::auth::register","",48,[[]]],[11,"initialize","mcaptcha::pages::errors","",52,[[]]],[11,"initialize","","",53,[[]]],[11,"initialize","mcaptcha::pages::panel::sitekey::add","",54,[[]]],[11,"initialize","mcaptcha::widget","",77,[[]]],[11,"initialize","mcaptcha","",79,[[]]],[11,"initialize","","",80,[[]]],[11,"initialize","","",81,[[]]],[11,"initialize","","",82,[[]]],[11,"initialize","","",83,[[]]],[11,"initialize","","",84,[[]]],[11,"initialize","","",85,[[]]],[11,"initialize","","",86,[[]]],[11,"get","mcaptcha::docs","",42,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",42,[[],["filenames",4]]],[11,"get","mcaptcha::static_assets::static_files","",72,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",72,[[],["filenames",4]]],[11,"get","","",73,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",73,[[],["filenames",4]]],[11,"get","mcaptcha::widget","",78,[[["str",15]],[["option",4],["cow",4]]]],[11,"iter","","",78,[[],["filenames",4]]],[11,"render_once","mcaptcha::pages::auth::login","",114,[[],["renderresult",6]]],[11,"render_once_to","","",114,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","mcaptcha::pages::auth::register","",116,[[],["renderresult",6]]],[11,"render_once_to","","",116,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","mcaptcha::pages::errors","",51,[[],["renderresult",6]]],[11,"render_once_to","","",51,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","mcaptcha::pages::panel::sitekey::add","",55,[[],["renderresult",6]]],[11,"render_once_to","","",55,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","mcaptcha::pages::panel::sitekey::list","",56,[[],["renderresult",6]]],[11,"render_once_to","","",56,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","mcaptcha::pages::panel::sitekey::view","",59,[[],["renderresult",6]]],[11,"render_once_to","","",59,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","mcaptcha::pages::panel","",62,[[],["renderresult",6]]],[11,"render_once_to","","",62,[[["buffer",3]],[["rendererror",4],["result",4]]]],[11,"render_once","mcaptcha::widget","",76,[[],["renderresult",6]]],[11,"render_once_to","","",76,[[["buffer",3]],[["rendererror",4],["result",4]]]]],"p":[[3,"Email"],[3,"Secret"],[3,"Account"],[3,"AccountCheckPayload"],[3,"AccountCheckResp"],[3,"Auth"],[3,"Register"],[3,"Login"],[3,"Password"],[3,"MCaptcha"],[3,"MCaptchaID"],[3,"MCaptchaDetails"],[3,"Duration"],[3,"UpdateDuration"],[3,"GetDurationResp"],[3,"GetDuration"],[3,"Levels"],[3,"AddLevels"],[3,"UpdateLevels"],[3,"Levels"],[3,"I32Levels"],[3,"Meta"],[3,"BuildDetails"],[3,"BuildDetailsBuilder"],[4,"BuildDetailsBuilderError"],[3,"Health"],[3,"HealthBuilder"],[4,"HealthBuilderError"],[3,"AddNotification"],[3,"Notification"],[3,"NotificationResp"],[3,"MarkReadReq"],[3,"NotificationResp"],[3,"Notifications"],[3,"GetConfigPayload"],[3,"ValidationToken"],[3,"CaptchaValidateResp"],[3,"PoW"],[3,"Routes"],[3,"Data"],[4,"SystemGroup"],[3,"Docs"],[3,"Asset"],[4,"ServiceError"],[3,"ErrorToResponse"],[4,"PageError"],[3,"CheckLoginMiddleware"],[3,"INDEX"],[3,"INDEX"],[3,"Auth"],[3,"Errors"],[3,"ErrorPage"],[3,"INTERNAL_SERVER_ERROR_BODY"],[3,"UNKNOWN_ERROR_BODY"],[3,"INDEX"],[3,"IndexPage"],[3,"IndexPage"],[3,"McaptchaConfig"],[3,"Level"],[3,"IndexPage"],[3,"Sitekey"],[3,"Panel"],[3,"IndexPage"],[3,"Routes"],[4,"Methods"],[3,"Server"],[3,"Captcha"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Redis"],[3,"Settings"],[3,"FileMap"],[3,"Asset"],[3,"Favicons"],[3,"Stats"],[3,"Widget"],[3,"IndexPage"],[3,"INDEX_PAGE"],[3,"WidgetAssets"],[3,"SETTINGS"],[3,"FILES"],[3,"JS"],[3,"CSS"],[3,"MOBILE_CSS"],[3,"VERIFICATIN_WIDGET_JS"],[3,"VERIFICATIN_WIDGET_CSS"],[3,"SOURCE_FILES_OF_INSTANCE"],[3,"delete_account"],[3,"email_exists"],[3,"set_email"],[3,"get_secret"],[3,"update_user_secret"],[3,"username_exists"],[3,"register"],[3,"login"],[3,"signout"],[3,"update_token"],[3,"get_token"],[3,"delete_mcaptcha"],[3,"update_duration"],[3,"get_duration"],[3,"add_levels"],[3,"update_levels"],[3,"delete_levels"],[3,"get_levels"],[3,"build_details"],[3,"health"],[3,"add_notification"],[3,"get_notification"],[3,"mark_read"],[3,"get_config"],[3,"verify_pow"],[3,"validate_captcha_token"],[3,"CheckLogin"],[3,"IndexPage"],[3,"login"],[3,"IndexPage"],[3,"join"],[3,"add_sitekey"],[3,"list_sitekeys"],[3,"view_sitekey"],[3,"panel"],[3,"static_files"],[3,"favicons"],[3,"show_widget"],[3,"widget_assets"]]},\
"tests_migrate":{"doc":"","i":[[0,"data","tests_migrate","",null,null],[3,"Data","tests_migrate::data","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[4,"SystemGroup","","",null,null],[13,"Embedded","","",1,null],[13,"Redis","","",1,null],[11,"get_pow","","utility function to get difficulty factor of site id and …",1,[[["string",3]]]],[11,"verify_pow","","utility function to verify [Work]",1,[[["work",3]]]],[11,"validate_verification_tokens","","utility function to validate verification tokens",1,[[["verifycaptcharesult",3]]]],[11,"new","","",0,[[]]],[11,"new_system","","",0,[[["addr",3],["mastertrait",8],["addr",3],["save",8]],[["system",3],["save",8],["mastertrait",8]]]],[0,"settings","tests_migrate","",null,null],[3,"Server","tests_migrate::settings","",null,null],[12,"allow_registration","","",2,null],[12,"port","","",2,null],[12,"domain","","",2,null],[12,"cookie_secret","","",2,null],[12,"ip","","",2,null],[12,"url_prefix","","",2,null],[3,"Captcha","","",null,null],[12,"salt","","",3,null],[12,"gc","","",3,null],[11,"get_ip","","",2,[[],["string",3]]],[3,"DatabaseBuilder","","",null,null],[12,"port","","",4,null],[12,"hostname","","",4,null],[12,"username","","",4,null],[12,"password","","",4,null],[12,"name","","",4,null],[12,"url","","",4,null],[11,"extract_database_url","","",4,[[["url",3]]]],[3,"Database","","",null,null],[12,"url","","",5,null],[12,"pool","","",5,null],[3,"Redis","","",null,null],[12,"url","","",6,null],[12,"pool","","",6,null],[3,"Settings","","",null,null],[12,"debug","","",7,null],[12,"database","","",7,null],[12,"redis","","",7,null],[12,"server","","",7,null],[12,"pow","","",7,null],[12,"source_code","","",7,null],[11,"new","","",7,[[],[["result",4],["configerror",4]]]],[5,"check_url","","",null,[[["config",3]]]],[5,"set_from_database_url","","",null,[[["databasebuilder",3],["config",3]]]],[5,"set_database_url","","",null,[[["config",3]]]],[3,"Data","tests_migrate","",null,null],[12,"db","","",0,null],[12,"creds","","",0,null],[12,"captcha","","",0,null],[3,"Settings","","",null,null],[12,"debug","","",7,null],[12,"database","","",7,null],[12,"redis","","",7,null],[12,"server","","",7,null],[12,"pow","","",7,null],[12,"source_code","","",7,null],[3,"SETTINGS","","",null,null],[12,"__private_field","","",8,null],[5,"main","","",null,[[]]],[5,"build","","",null,[[]]],[5,"cache_bust","","",null,[[]]],[11,"from","tests_migrate::data","",0,[[]]],[11,"into","","",0,[[]]],[11,"borrow","","",0,[[]]],[11,"borrow_mut","","",0,[[]]],[11,"try_from","","",0,[[],["result",4]]],[11,"try_into","","",0,[[],["result",4]]],[11,"type_id","","",0,[[],["typeid",3]]],[11,"vzip","","",0,[[]]],[11,"from","","",1,[[]]],[11,"into","","",1,[[]]],[11,"borrow","","",1,[[]]],[11,"borrow_mut","","",1,[[]]],[11,"try_from","","",1,[[],["result",4]]],[11,"try_into","","",1,[[],["result",4]]],[11,"type_id","","",1,[[],["typeid",3]]],[11,"vzip","","",1,[[]]],[11,"from","tests_migrate::settings","",2,[[]]],[11,"into","","",2,[[]]],[11,"to_owned","","",2,[[]]],[11,"clone_into","","",2,[[]]],[11,"borrow","","",2,[[]]],[11,"borrow_mut","","",2,[[]]],[11,"try_from","","",2,[[],["result",4]]],[11,"try_into","","",2,[[],["result",4]]],[11,"type_id","","",2,[[],["typeid",3]]],[11,"vzip","","",2,[[]]],[11,"from","","",3,[[]]],[11,"into","","",3,[[]]],[11,"to_owned","","",3,[[]]],[11,"clone_into","","",3,[[]]],[11,"borrow","","",3,[[]]],[11,"borrow_mut","","",3,[[]]],[11,"try_from","","",3,[[],["result",4]]],[11,"try_into","","",3,[[],["result",4]]],[11,"type_id","","",3,[[],["typeid",3]]],[11,"vzip","","",3,[[]]],[11,"from","","",4,[[]]],[11,"into","","",4,[[]]],[11,"to_owned","","",4,[[]]],[11,"clone_into","","",4,[[]]],[11,"borrow","","",4,[[]]],[11,"borrow_mut","","",4,[[]]],[11,"try_from","","",4,[[],["result",4]]],[11,"try_into","","",4,[[],["result",4]]],[11,"type_id","","",4,[[],["typeid",3]]],[11,"vzip","","",4,[[]]],[11,"from","","",5,[[]]],[11,"into","","",5,[[]]],[11,"to_owned","","",5,[[]]],[11,"clone_into","","",5,[[]]],[11,"borrow","","",5,[[]]],[11,"borrow_mut","","",5,[[]]],[11,"try_from","","",5,[[],["result",4]]],[11,"try_into","","",5,[[],["result",4]]],[11,"type_id","","",5,[[],["typeid",3]]],[11,"vzip","","",5,[[]]],[11,"from","","",6,[[]]],[11,"into","","",6,[[]]],[11,"to_owned","","",6,[[]]],[11,"clone_into","","",6,[[]]],[11,"borrow","","",6,[[]]],[11,"borrow_mut","","",6,[[]]],[11,"try_from","","",6,[[],["result",4]]],[11,"try_into","","",6,[[],["result",4]]],[11,"type_id","","",6,[[],["typeid",3]]],[11,"vzip","","",6,[[]]],[11,"from","","",7,[[]]],[11,"into","","",7,[[]]],[11,"to_owned","","",7,[[]]],[11,"clone_into","","",7,[[]]],[11,"borrow","","",7,[[]]],[11,"borrow_mut","","",7,[[]]],[11,"try_from","","",7,[[],["result",4]]],[11,"try_into","","",7,[[],["result",4]]],[11,"type_id","","",7,[[],["typeid",3]]],[11,"vzip","","",7,[[]]],[11,"from","tests_migrate","",8,[[]]],[11,"into","","",8,[[]]],[11,"borrow","","",8,[[]]],[11,"borrow_mut","","",8,[[]]],[11,"try_from","","",8,[[],["result",4]]],[11,"try_into","","",8,[[],["result",4]]],[11,"type_id","","",8,[[],["typeid",3]]],[11,"vzip","","",8,[[]]],[11,"clone","tests_migrate::settings","",2,[[],["server",3]]],[11,"clone","","",3,[[],["captcha",3]]],[11,"clone","","",4,[[],["databasebuilder",3]]],[11,"clone","","",5,[[],["database",3]]],[11,"clone","","",6,[[],["redis",3]]],[11,"clone","","",7,[[],["settings",3]]],[11,"deref","tests_migrate","",8,[[],["settings",3]]],[11,"fmt","tests_migrate::settings","",2,[[["formatter",3]],["result",6]]],[11,"fmt","","",3,[[["formatter",3]],["result",6]]],[11,"fmt","","",4,[[["formatter",3]],["result",6]]],[11,"fmt","","",5,[[["formatter",3]],["result",6]]],[11,"fmt","","",6,[[["formatter",3]],["result",6]]],[11,"fmt","","",7,[[["formatter",3]],["result",6]]],[11,"initialize","tests_migrate","",8,[[]]],[11,"deserialize","tests_migrate::settings","",2,[[],["result",4]]],[11,"deserialize","","",3,[[],["result",4]]],[11,"deserialize","","",4,[[],["result",4]]],[11,"deserialize","","",5,[[],["result",4]]],[11,"deserialize","","",6,[[],["result",4]]],[11,"deserialize","","",7,[[],["result",4]]]],"p":[[3,"Data"],[4,"SystemGroup"],[3,"Server"],[3,"Captcha"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Redis"],[3,"Settings"],[3,"SETTINGS"]]}\
}');
addSearchOptions(searchIndex);initSearch(searchIndex);
\ No newline at end of file
diff --git a/src/mcaptcha/api/v1/auth.rs.html b/src/mcaptcha/api/v1/auth.rs.html
index 0fcb8d31..199c3d28 100644
--- a/src/mcaptcha/api/v1/auth.rs.html
+++ b/src/mcaptcha/api/v1/auth.rs.html
@@ -199,6 +199,40 @@
196
197
198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
/*
* Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net>
@@ -221,6 +255,7 @@
use actix_web::http::header;
use actix_web::{web, HttpResponse, Responder};
use serde::{Deserialize, Serialize};
+//use futures::{future::TryFutureExt, join};
use super::mcaptcha::get_random;
use crate::errors::*;
@@ -262,7 +297,9 @@
#[derive(Clone, Debug, Deserialize, Serialize)]
pub struct Login {
- pub username: String,
+ // login accepts both username and email under "username field"
+ // TODO update all instances where login is used
+ pub login: String,
pub password: String,
}
@@ -272,28 +309,59 @@
}
/// returns Ok(()) when everything checks out and the user is authenticated. Erros otherwise
- pub async fn login_runner(payload: &Login, data: &AppData) -> ServiceResult<()> {
+ pub async fn login_runner(payload: Login, data: &AppData) -> ServiceResult<String> {
use argon2_creds::Config;
use sqlx::Error::RowNotFound;
- let rec = sqlx::query_as!(
- Password,
- r#"SELECT password FROM mcaptcha_users WHERE name = ($1)"#,
- &payload.username,
- )
- .fetch_one(&data.db)
- .await;
-
- match rec {
- Ok(s) => {
- if Config::verify(&s.password, &payload.password)? {
- Ok(())
- } else {
- Err(ServiceError::WrongPassword)
- }
+ let verify = |stored: &str, received: &str| {
+ if Config::verify(&stored, &received)? {
+ Ok(())
+ } else {
+ Err(ServiceError::WrongPassword)
+ }
+ };
+
+ if payload.login.contains("@") {
+ #[derive(Clone, Debug)]
+ struct EmailLogin {
+ name: String,
+ password: String,
+ }
+
+ let email_fut = sqlx::query_as!(
+ EmailLogin,
+ r#"SELECT name, password FROM mcaptcha_users WHERE email = ($1)"#,
+ &payload.login,
+ )
+ .fetch_one(&data.db)
+ .await;
+
+ match email_fut {
+ Ok(s) => {
+ verify(&s.password, &payload.password)?;
+ Ok(s.name)
+ }
+
+ Err(RowNotFound) => Err(ServiceError::AccountNotFound),
+ Err(_) => Err(ServiceError::InternalServerError),
+ }
+ } else {
+ let username_fut = sqlx::query_as!(
+ Password,
+ r#"SELECT password FROM mcaptcha_users WHERE name = ($1)"#,
+ &payload.login,
+ )
+ .fetch_one(&data.db)
+ .await;
+
+ match username_fut {
+ Ok(s) => {
+ verify(&s.password, &payload.password)?;
+ Ok(payload.login)
+ }
+ Err(RowNotFound) => Err(ServiceError::AccountNotFound),
+ Err(_) => Err(ServiceError::InternalServerError),
}
- Err(RowNotFound) => Err(ServiceError::UsernameNotFound),
- Err(_) => Err(ServiceError::InternalServerError),
}
}
@@ -383,8 +451,8 @@
payload: web::Json<runners::Login>,
data: AppData,
) -> ServiceResult<impl Responder> {
- runners::login_runner(&payload, &data).await?;
- id.remember(payload.into_inner().username);
+ let username = runners::login_runner(payload.into_inner(), &data).await?;
+ id.remember(username);
Ok(HttpResponse::Ok())
}
diff --git a/src/mcaptcha/errors.rs.html b/src/mcaptcha/errors.rs.html
index 96972234..2f3cbe5b 100644
--- a/src/mcaptcha/errors.rs.html
+++ b/src/mcaptcha/errors.rs.html
@@ -259,6 +259,9 @@
256
257
258
+259
+260
+261
/*
* Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net>
@@ -312,6 +315,8 @@
WrongPassword,
#[display(fmt = "Username not found")]
UsernameNotFound,
+ #[display(fmt = "Account not found")]
+ AccountNotFound,
/// when the value passed contains profainity
#[display(fmt = "Can't allow profanity in usernames")]
@@ -376,6 +381,7 @@
ServiceError::NotAUrl => StatusCode::BAD_REQUEST,
ServiceError::WrongPassword => StatusCode::UNAUTHORIZED,
ServiceError::UsernameNotFound => StatusCode::NOT_FOUND,
+ ServiceError::AccountNotFound => StatusCode::NOT_FOUND,
ServiceError::ProfainityError => StatusCode::BAD_REQUEST,
ServiceError::BlacklistError => StatusCode::BAD_REQUEST,