Function mcaptcha::api::v1::auth::services [−][src]
pub fn services(cfg: &mut ServiceConfig)
diff --git a/mcaptcha/api/v1/auth/fn.services.html b/mcaptcha/api/v1/auth/fn.services.html index ca725267..a74148c4 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 |
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;
impl RefUnwindSafe for loginimpl Send for loginimpl Sync for loginimpl Unpin for loginimpl UnwindSafe for loginimpl<T> Any for T where
T: 'static + ?Sized, [src]pub fn type_id(&self) -> TypeId[src]Gets the TypeId of self. Read more
pub struct login;
impl RefUnwindSafe for loginimpl Send for loginimpl Sync for loginimpl Unpin for loginimpl UnwindSafe for loginimpl<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 struct register;
impl RefUnwindSafe for registerimpl Send for registerimpl Sync for registerimpl Unpin for registerimpl UnwindSafe for registerimpl<T> Any for T where
T: 'static + ?Sized, [src]pub fn type_id(&self) -> TypeId[src]Gets the TypeId of self. Read more
pub struct register;
impl RefUnwindSafe for registerimpl Send for registerimpl Sync for registerimpl Unpin for registerimpl UnwindSafe for registerimpl<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 struct signout;
impl RefUnwindSafe for signoutimpl Send for signoutimpl Sync for signoutimpl Unpin for signoutimpl UnwindSafe for signoutimpl<T> Any for T where
T: 'static + ?Sized, [src]pub fn type_id(&self) -> TypeId[src]Gets the TypeId of self. Read more
pub struct signout;
impl RefUnwindSafe for signoutimpl Send for signoutimpl Sync for signoutimpl Unpin for signoutimpl UnwindSafe for signoutimpl<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 const GIT_COMMIT_HASH: &str = "1d1b9e650f8032486fe2de30d411454c35ac25f8";
pub const GIT_COMMIT_HASH: &str = "b7ec1bca221af2c62072fcd8dd5b63e7b6fcac07";
Email operations: verification, notification, etc
| IndexPage |
| PAGE |
pub extern "C" fn __wasm_bindgen_generated_gen_pow(
arg0: <String as FromWasmAbi>::Abi,
arg1: <String as FromWasmAbi>::Abi,
arg2: <u32 as FromWasmAbi>::Abi
) -> <String as ReturnWasmAbi>::Abi
pub extern "C" fn __wasm_bindgen_generated_gen_pow(
arg0: <String as FromWasmAbi>::Abi,
arg1: <String as FromWasmAbi>::Abi,
arg2: <u32 as FromWasmAbi>::Abi
) -> <String as ReturnWasmAbi>::Abi
generate proof-of-work
fn main() { diff --git a/mcaptcha_browser/fn.gen_pow.html b/mcaptcha_browser/fn.gen_pow.html index 6d83a5f8..b170a5fa 100644 --- a/mcaptcha_browser/fn.gen_pow.html +++ b/mcaptcha_browser/fn.gen_pow.html @@ -1,7 +1,7 @@gen_pow in mcaptcha_browser - Rust Function mcaptcha_browser::
gen_pow [−][src]pub fn gen_pow(salt: String, phrase: String, difficulty_factor: u32) -> StringFunction mcaptcha_browser::
gen_pow [−][src]pub fn gen_pow(salt: String, phrase: String, difficulty_factor: u32) -> Stringgenerate proof-of-work
fn main() { diff --git a/mcaptcha_browser/index.html b/mcaptcha_browser/index.html index 45ec745c..fa353bc7 100644 --- a/mcaptcha_browser/index.html +++ b/mcaptcha_browser/index.html @@ -1,7 +1,7 @@mcaptcha_browser - Rust Crate mcaptcha_browser[−][src]
Crate mcaptcha_browser[−][src]
mCaptcha is a proof of work based Denaial-of-Service attack protection system. This is is a WASM library that you can embed in your frontend code to protect your service.
A commercial managed solution is in the works but I’d much rather prefer @@ -20,35 +20,33 @@ folks host their own instances as it will make the more decentralized and free.<
generate proof-of-work
+ let config = ConfigBuilder::default().salt(SALT.into()).build().unwrap(); + assert!(config.is_valid_proof(&work, &PHRASE.to_string())); + assert!(config.is_sufficient_difficulty(&work, DIFFICULTY));-fn main() { - use mcaptcha_browser::*; - use pow_sha256::*; + use mcaptcha_browser::*; + use pow_sha256::*; - // salt using which PoW should be computed - const SALT: &str = "yrandomsaltisnotlongenoug"; - // one-time phrase over which PoW should be computed - const PHRASE: &str = "ironmansucks"; - // and the difficulty factor - const DIFFICULTY: u32 = 1000; + // salt using which PoW should be computed + const SALT: &str = "yrandomsaltisnotlongenoug"; + // one-time phrase over which PoW should be computed + const PHRASE: &str = "ironmansucks"; + // and the difficulty factor + const DIFFICULTY: u32 = 1000; - // currently gen_pow() returns a JSON formated string to better communicate - // with JavaScript. See [PoW<T>][pow_sha256::PoW] for schema - let serialised_work = gen_pow(SALT.into(), PHRASE.into(), DIFFICULTY); + // currently gen_pow() returns a JSON formated string to better communicate + // with JavaScript. See [PoW<T>][pow_sha256::PoW] for schema + let serialised_work = gen_pow(SALT.into(), PHRASE.into(), DIFFICULTY); - let work: Work = serde_json::from_str(&serialised_work).unwrap(); + let work: Work = serde_json::from_str(&serialised_work).unwrap(); - let work = PoWBuilder::default() - .result(work.result) - .nonce(work.nonce) - .build() - .unwrap(); + let work = PoWBuilder::default() + .result(work.result) + .nonce(work.nonce) + .build() + .unwrap(); - let config = ConfigBuilder::default().salt(SALT.into()).build().unwrap(); - assert!(config.is_valid_proof(&work, &PHRASE.to_string())); - assert!(config.is_sufficient_difficulty(&work, DIFFICULTY)); -}Structs
Work Functions
__wasm_bindgen_generated_gen_pow generate proof-of-work
diff --git a/mcaptcha_browser/struct.Work.html b/mcaptcha_browser/struct.Work.html index f799b4a9..a3855a8b 100644 --- a/mcaptcha_browser/struct.Work.html +++ b/mcaptcha_browser/struct.Work.html @@ -1,13 +1,13 @@Work in mcaptcha_browser - Rust Struct mcaptcha_browser::
Work [−][src]Struct mcaptcha_browser::
Work [−][src]- Fields
result: Stringnonce: u64Trait Implementations
impl<'de> Deserialize<'de> for Work[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where[src]
__D: Deserializer<'de>,Deserialize this value from the given Serde deserializer. Read more
-
impl Serialize for Work[src]
fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error> where[src]
__S: Serializer,Serialize this value into the given Serde serializer. Read more
+ Fieldsresult: Stringnonce: u64Trait Implementations
impl<'de> Deserialize<'de> for Work[src]
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error> where[src]
__D: Deserializer<'de>,Deserialize this value from the given Serde deserializer. Read more
+Auto Trait Implementations
impl RefUnwindSafe for Work
impl Send for Work
impl Sync for Work
impl Unpin for Work
impl UnwindSafe for WorkBlanket Implementations
impl<T> BorrowMut<T> for T where[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T[src]Mutably borrows from an owned value. Read more
diff --git a/search-index.js b/search-index.js index 3b3327be..3098c062 100644 --- a/search-index.js +++ b/search-index.js @@ -1,6 +1,6 @@ var searchIndex = JSON.parse('{\ "mcaptcha":{"doc":"","t":[6,17,3,3,17,3,3,17,3,3,17,17,17,17,17,3,3,3,17,3,3,17,17,12,12,12,12,12,12,12,12,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,0,12,12,12,14,11,11,11,11,11,11,11,11,0,0,0,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,5,0,0,12,12,0,12,0,12,12,0,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,0,0,0,0,0,0,0,5,3,3,11,11,11,11,11,11,11,11,0,11,11,0,12,11,11,11,11,11,11,0,0,11,11,5,11,11,11,11,11,11,11,11,0,12,11,11,11,11,3,11,11,11,5,11,11,11,11,3,11,11,11,11,11,11,11,11,11,12,3,11,11,11,11,11,11,11,11,11,11,5,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,12,12,11,12,11,11,11,11,11,12,12,12,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,12,11,5,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,5,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,0,0,5,3,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,12,12,11,12,11,11,11,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,12,5,12,12,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,0,0,5,0,5,3,3,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,12,12,12,11,11,11,0,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,5,11,11,11,11,11,3,11,11,12,11,12,11,11,11,11,11,12,11,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,3,11,11,11,11,11,12,11,11,0,11,11,11,5,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,12,11,3,3,3,3,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,3,5,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,0,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,11,11,11,11,3,12,11,11,12,11,12,11,11,11,11,11,12,11,3,3,4,3,3,4,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,3,11,11,11,11,11,11,11,11,11,11,12,12,11,11,0,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,3,11,11,12,11,12,11,11,11,11,11,11,0,0,0,0,5,3,3,11,11,11,11,11,11,11,12,11,11,12,11,11,12,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,3,12,12,12,12,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,3,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,12,11,12,11,11,11,11,11,0,0,5,0,0,3,11,11,11,11,11,11,11,11,11,11,3,5,11,11,12,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,12,11,11,12,11,11,11,12,12,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,3,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,3,11,11,17,3,12,12,11,11,12,11,11,12,12,12,11,12,12,11,11,11,11,3,13,6,13,4,11,11,11,11,12,12,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,3,17,11,11,5,11,11,11,5,5,11,11,11,0,5,5,11,11,11,11,3,12,11,11,11,12,11,11,12,11,11,11,11,0,3,17,11,11,11,11,11,11,11,11,11,11,11,11,11,5,12,11,12,13,13,13,13,13,3,13,13,13,13,4,6,13,13,13,13,4,13,6,3,13,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,3,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,17,0,0,0,0,5,0,0,0,5,3,3,17,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,17,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,12,12,11,11,11,11,11,3,3,17,3,12,12,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,12,11,11,11,0,5,12,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,12,11,3,17,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,0,5,0,12,11,11,11,11,11,11,11,11,11,3,11,11,11,12,11,11,12,11,11,11,11,0,0,0,5,0,3,3,17,12,3,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,17,6,11,11,11,11,11,11,11,11,5,11,11,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,12,11,11,11,11,12,11,3,3,3,17,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,17,3,12,12,11,11,12,12,11,12,11,11,12,12,12,12,11,11,11,11,13,4,13,13,13,11,11,11,11,11,11,11,11,3,3,3,3,3,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,12,11,11,11,11,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,5,5,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,11,11,11,11,11,11,11,0,5,0,3,11,11,12,11,11,11,11,11,11,11,11,3,3,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,5,5,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,0,3,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,5,5,5,3,3,17,17,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,0,5,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,12,11],"n":["AppData","CACHE_AGE","CSS","CheckLogin","DOCS","Data","FILES","GIT_COMMIT_HASH","JS","MOBILE_CSS","OPEN_API_DOC","PAGES","PKG_DESCRIPTION","PKG_HOMEPAGE","PKG_NAME","SETTINGS","SOURCE_FILES_OF_INSTANCE","Settings","V1_API_ROUTES","VERIFICATIN_WIDGET_CSS","VERIFICATIN_WIDGET_JS","VERSION","WIDGET_ROUTES","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","api","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","captcha","creds","data","database","db","debug","define_resource","deref","deref","deref","deref","deref","deref","deref","deref","docs","email","errors","from","from","from","from","from","from","from","from","get_identity_service","get_json_err","initialize","initialize","initialize","initialize","initialize","initialize","initialize","initialize","into","into","into","into","into","into","into","into","mailer","main","middleware","pages","pow","redis","routes","server","settings","smtp","source_code","static_assets","stats","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","widget","v1","account","auth","mcaptcha","meta","notifications","pow","routes","services","AccountCheckPayload","AccountCheckResp","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","delete","deserialize","deserialize","email","exists","fmt","fmt","from","from","into","into","routes","secret","serialize","serialize","services","to_owned","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","username","val","vzip","vzip","borrow","borrow_mut","delete_account","from","into","register","services","try_from","try_into","type_id","vzip","Email","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deserialize","email","email_exists","fmt","from","from","from","into","into","into","register","register","serialize","services","set_email","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Account","borrow","borrow_mut","delete","email_exists","from","get_secret","into","new","try_from","try_into","type_id","update_email","update_secret","username_exists","vzip","Secret","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deserialize","fmt","from","from","from","get_secret","into","into","into","register","register","secret","serialize","services","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_user_secret","vzip","vzip","vzip","borrow","borrow_mut","from","into","register","services","try_from","try_into","type_id","username_exists","vzip","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","from","from","from","into","into","into","login","register","register","register","register","routes","runners","services","signout","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Auth","borrow","borrow_mut","from","into","login","logout","new","register","try_from","try_into","type_id","vzip","Login","Password","Register","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","confirm_password","deserialize","deserialize","deserialize","email","fmt","fmt","fmt","from","from","from","into","into","into","login","login_runner","password","password","password","register_runner","serialize","serialize","serialize","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","username","vzip","vzip","vzip","captcha","duration","get_random","levels","services","MCaptchaDetails","MCaptchaID","add_mcaptcha_util","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","delete_mcaptcha","deserialize","deserialize","fmt","fmt","from","from","from","from","from","get_token","into","into","into","into","into","key","name","name","register","register","register","routes","serialize","serialize","services","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_token","update_token_helper","vzip","vzip","vzip","vzip","vzip","MCaptcha","borrow","borrow_mut","delete","from","get_token","into","new","try_from","try_into","type_id","update_key","vzip","GetDuration","GetDurationResp","UpdateDuration","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deserialize","deserialize","deserialize","duration","duration","from","from","from","from","from","get_duration","into","into","into","into","into","key","register","register","routes","serialize","serialize","serialize","services","token","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","update_duration","vzip","vzip","vzip","vzip","vzip","Duration","borrow","borrow_mut","from","get","into","new","try_from","try_into","type_id","update","vzip","AddLevels","I32Levels","Levels","UpdateLevels","add_levels","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","delete_levels","description","deserialize","deserialize","deserialize","deserialize","difficulty_factor","duration","fmt","fmt","from","from","from","from","from","from","from","from","get_levels","get_levels_util","into","into","into","into","into","into","into","into","key","levels","levels","levels","register","register","register","register","routes","serialize","serialize","serialize","serialize","services","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_levels","visitor_threshold","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Levels","add","borrow","borrow_mut","delete","from","get","into","new","try_from","try_into","type_id","update","vzip","BuildDetails","BuildDetailsBuilder","BuildDetailsBuilderError","Health","HealthBuilder","HealthBuilderError","UninitializedField","UninitializedField","ValidationError","ValidationError","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","build","build","build_details","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","db","db","db","default","default","deserialize","deserialize","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","git_commit_hash","git_commit_hash","git_commit_hash","health","into","into","into","into","into","into","into","into","is_redis","redis","redis","redis","register","register","routes","serialize","serialize","services","to_owned","to_owned","to_owned","to_owned","to_string","to_string","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","version","version","version","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","Meta","borrow","borrow_mut","build_details","from","health","into","new","try_from","try_into","type_id","vzip","add","get","mark_read","routes","services","AddNotification","add_notification","borrow","borrow","borrow_mut","borrow_mut","deserialize","from","from","heading","into","into","message","register","serialize","to","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Notification","NotificationResp","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deserialize","from","from","from","from","get_notification","heading","heading","id","id","into","into","into","message","message","name","name","received","received","register","serialize","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","MarkReadReq","NotificationResp","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","deserialize","deserialize","from","from","from","heading","id","id","into","into","into","mark_read","message","name","received","register","serialize","serialize","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Notifications","add","borrow","borrow_mut","from","get","into","mark_read","new","try_from","try_into","type_id","vzip","get_config","routes","services","verify_pow","verify_token","GetConfigPayload","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deserialize","fmt","from","from","get_config","init_mcaptcha","into","into","key","register","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","PoW","borrow","borrow_mut","from","get_config","into","new","scope","try_from","try_into","type_id","validate_captcha_token","verify_pow","vzip","ValidationToken","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deserialize","fmt","from","from","into","into","register","serialize","to_owned","token","try_from","try_from","try_into","try_into","type_id","type_id","verify_pow","vzip","vzip","CaptchaValidateResp","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deserialize","fmt","from","from","into","into","register","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","valid","validate_captcha_token","vzip","vzip","ROUTES","Routes","account","auth","borrow","borrow_mut","duration","from","into","levels","mcaptcha","meta","new","notifications","pow","try_from","try_into","type_id","vzip","Data","Embedded","Mailer","Redis","SystemGroup","borrow","borrow","borrow_mut","borrow_mut","captcha","creds","db","from","from","get_mailer","get_pow","into","into","mailer","new","new","new_system","try_from","try_from","try_into","try_into","type_id","type_id","validate_verification_tokens","verify_pow","vzip","vzip","Asset","DOCS","borrow","borrow_mut","dist","from","get","get","handle_embedded_file","index","into","iter","iter","routes","services","spec","try_from","try_into","type_id","vzip","Docs","assets","borrow","borrow_mut","from","home","into","new","spec","try_from","try_into","type_id","vzip","verification","IndexPage","PAGE","borrow","borrow_mut","clone","clone_into","from","into","new","render_once","render_once_to","to_owned","try_from","try_into","type_id","verification","verification_link","vzip","0","AccountNotFound","BlacklistError","CaptchaError","ClosedForRegistration","EmailTaken","ErrorToResponse","InternalServerError","InternalServerError","NotAUrl","NotAnEmail","PageError","PageResult","PasswordTooLong","PasswordTooShort","PasswordsDontMatch","ProfainityError","ServiceError","ServiceError","ServiceResult","SmtpErrorWrapper","TokenNotFound","UnableToSendEmail","UsernameCaseMappedError","UsernameNotFound","UsernameTaken","WrongPassword","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deserialize","eq","eq","eq","error","error_response","error_response","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","ne","ne","serialize","source","source","source","status_code","status_code","to_string","to_string","to_string","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","auth","CheckLogin","CheckLoginMiddleware","borrow","borrow","borrow_mut","borrow_mut","call","from","from","into","into","into_service","new_transform","poll_ready","service","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","NAME","auth","errors","panel","routes","services","login","register","routes","services","INDEX","IndexPage","PAGE","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","from","from","from","initialize","into","into","into","login","register","render_once","render_once_to","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","INDEX","IndexPage","PAGE","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","from","from","from","initialize","into","into","into","join","register","render_once","render_once_to","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Auth","borrow","borrow_mut","from","into","join","login","new","try_from","try_into","type_id","vzip","ErrorPage","INTERNAL_SERVER_ERROR_BODY","PAGE","UNKNOWN_ERROR_BODY","__private_field","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deref","deref","error","from","from","from","initialize","initialize","into","into","into","message","new","render_once","render_once_to","routes","services","title","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Errors","borrow","borrow_mut","from","internal_server_error","into","new","try_from","try_into","type_id","unknown_error","vzip","IndexPage","PAGE","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","from","from","into","into","new","panel","register","render_once","render_once_to","routes","services","sitekey","sitekeys","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Panel","borrow","borrow_mut","from","home","into","new","sitekey","try_from","try_into","type_id","vzip","add","list","routes","services","view","INDEX","IndexPage","PAGE","__private_field","add_sitekey","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","form_description","form_duration","form_title","from","from","from","initialize","into","into","into","levels","register","render_once","render_once_to","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","IndexPage","PAGE","SiteKeys","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","from","from","get_list_sitekeys","into","into","list_sitekeys","new","register","render_once","render_once_to","sitekeys","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Sitekey","add","borrow","borrow_mut","from","into","list","new","try_from","try_into","type_id","view","vzip","IndexPage","Level","McaptchaConfig","PAGE","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","config_id","difficulty_factor","duration","duration","from","from","from","from","into","into","into","into","key","levels","name","name","new","register","render_once","render_once_to","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","view_sitekey","visitor_threshold","vzip","vzip","vzip","vzip","ROUTES","Routes","about","auth","borrow","borrow_mut","donate","errors","from","home","into","new","panel","privacy","security","thanks","try_from","try_into","type_id","vzip","Get","Methods","Post","ProtectGet","ProtectPost","borrow","borrow_mut","from","into","try_from","try_into","type_id","vzip","Captcha","Database","DatabaseBuilder","Redis","Server","Settings","Smtp","allow_registration","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_url","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cookie_secret","database","debug","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","domain","extract_database_url","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","gc","get_ip","hostname","into","into","into","into","into","into","into","ip","name","new","password","password","pool","pool","port","port","port","pow","redis","reply","salt","server","set_database_url","set_from_database_url","smtp","source_code","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","url","url","url","url","url_prefix","username","username","vzip","vzip","vzip","vzip","vzip","vzip","vzip","filemap","services","static_files","FileMap","borrow","borrow_mut","files","from","get","into","new","try_from","try_into","type_id","vzip","Asset","Favicons","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","favicons","from","from","from","from","get","get","get","get","handle_assets","handle_favicons","into","into","into","into","iter","iter","iter","iter","register","register","static_files","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","fetch","record","Stats","borrow","borrow_mut","clone","clone_into","config_fetches","confirms","deserialize","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","from","into","new","serialize","solves","to_owned","try_from","try_into","type_id","vzip","record_confirm","record_fetch","record_solve","INDEX_PAGE","IndexPage","PAGE","WIDGET_ROUTES","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deref","from","from","from","initialize","into","into","into","new","register","render_once","render_once_to","routes","services","show_widget","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Widget","borrow","borrow_mut","from","into","new","try_from","try_into","type_id","verification_widget","vzip"],"q":["mcaptcha","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api","mcaptcha::api::v1","","","","","","","","mcaptcha::api::v1::account","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::delete","","","","","","","","","","","mcaptcha::api::v1::account::email","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::routes","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::secret","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::username","","","","","","","","","","","mcaptcha::api::v1::auth","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::auth::routes","","","","","","","","","","","","","mcaptcha::api::v1::auth::runners","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha","","","","","mcaptcha::api::v1::mcaptcha::captcha","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::captcha::routes","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::duration","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::duration::routes","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::levels","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::levels::routes","","","","","","","","","","","","","","mcaptcha::api::v1::meta","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::meta::routes","","","","","","","","","","","","mcaptcha::api::v1::notifications","","","","","mcaptcha::api::v1::notifications::add","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::notifications::get","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::notifications::mark_read","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::notifications::routes","","","","","","","","","","","","","mcaptcha::api::v1::pow","","","","","mcaptcha::api::v1::pow::get_config","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::pow::routes","","","","","","","","","","","","","","mcaptcha::api::v1::pow::verify_pow","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::pow::verify_token","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::routes","","","","","","","","","","","","","","","","","","","mcaptcha::data","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::docs","","","","","","","","","","","","","","","","","","","","mcaptcha::docs::routes","","","","","","","","","","","","","mcaptcha::email","mcaptcha::email::verification","","","","","","","","","","","","","","","","","","mcaptcha::errors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::middleware","mcaptcha::middleware::auth","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages","","","","","","mcaptcha::pages::auth","","","","mcaptcha::pages::auth::login","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::auth::register","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::auth::routes","","","","","","","","","","","","mcaptcha::pages::errors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::errors::routes","","","","","","","","","","","","mcaptcha::pages::panel","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::routes","","","","","","","","","","","","mcaptcha::pages::panel::sitekey","","","","","mcaptcha::pages::panel::sitekey::add","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::list","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::routes","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::view","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::routes","","","","","","","","","","","","","","","","","","","","mcaptcha::routes","","","","","","","","","","","","","mcaptcha::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::static_assets","","","mcaptcha::static_assets::filemap","","","","","","","","","","","","mcaptcha::static_assets::static_files","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::stats","","mcaptcha::stats::fetch","","","","","","","","","","","","","","","","","","","","","","mcaptcha::stats::record","","","mcaptcha::widget","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::widget::routes","","","","","","","","","",""],"d":["","","","","","App data","","","","","","","","","","","points to source files matching build commit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mCaptcha system: Redis cache, etc.","credential management configuration","App data: redis cache, database connections, etc.","","databse pool","","Defines resoures for [Methods]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","email client","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","User facing CAPTCHA widget","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","update email","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","returns Ok(()) when everything checks out and the user is …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","name is config_name","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Builder forBuildDetails.","Error type for BuildDetailsBuilder","Health check return datatype","Builder forHealth.","Error type for HealthBuilder","Uninitialized field","Uninitialized field","Custom validation error","Custom validation error","","","","","","","","","","","","","","","","","Builds a newBuildDetails.","Builds a newHealth.","emmits build details of the bninary","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","checks all components of the system","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","route handler that adds a notification message","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","route handler that gets all unread notifications","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","route handler that marks a notification read","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","PoW Verification module","PoW success token module","","","","","","","","","","","","get PoW configuration for an mcaptcha key","Call this when [MCaptcha][libmcaptcha::MCaptcha] is not …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","validation token that clients receive as proof for …","","","","","","","","","","","","","","","","","","","","","","","route handler that verifies PoW and issues a solution …","","","","","","","","","","","","","","","","","","","","","","","","","","route hander that validates a PoW solution token","","","","","","","","","","","","","","","","","","","","","","App data","","Mailer data type AsyncSmtpTransport","","Represents mCaptcha cache and master system. When Redis …","","","","","mCaptcha system: Redis cache, etc.","credential management configuration","databse pool","","","","utility function to get difficulty factor of siteidand …","","","email client","","create new instance of app data","","","","","","","","utility function to validate verification tokens","utility function to verify [Work]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Email operations: verification, notification, etc","","","","","","","","","","","","","","","","","","","","","when the value passed contains blacklisted words see …","","","email is already taken","","","","","","","","","","","when the value passed contains profainity","","","","","when the a token name is already taken token not found","Unable to send email","when the value passed contains characters not present in …","","when the a username is already taken","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","utility function to get a list of all sitekeys that a …","","","render a list of all sitekeys that a user has","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","route handler that renders individual views for sitekeys","","","","","","","","","","","","","","","","","","","","","","","","","","GET hander","","POST handler","Protected GET handler","Protected POST handler","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","","","","","","","","","","","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","","","","","","","","","","","","","","","","","","","","","","","","","","","widget services","render a client side widget for CAPTCHA verification","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,0,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,9,9,0,10,9,10,0,1,2,3,4,5,6,7,8,0,0,0,1,2,3,4,5,6,7,8,0,0,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,9,0,0,0,10,10,0,10,0,10,10,0,0,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8,0,0,0,0,0,0,0,0,0,0,0,0,11,12,11,12,11,12,11,12,0,11,12,0,12,11,12,11,12,11,12,0,0,11,12,0,11,12,11,12,11,12,11,12,0,11,11,12,13,13,0,13,13,13,0,13,13,13,13,0,14,15,16,14,15,16,14,14,14,14,0,14,14,15,16,14,15,16,15,16,14,0,0,14,14,15,16,14,15,16,14,15,16,14,15,16,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,0,18,19,20,18,19,20,18,18,18,18,18,19,20,0,18,19,20,19,20,18,18,0,18,18,19,20,18,19,20,18,19,20,0,18,19,20,21,21,21,21,21,0,21,21,21,0,21,22,23,24,22,23,24,22,23,24,22,23,24,0,0,22,23,24,0,0,0,0,22,23,24,22,23,24,22,23,24,22,23,24,0,25,25,25,25,25,25,25,25,25,25,25,25,0,0,0,26,27,28,26,27,28,26,27,28,26,27,28,26,26,27,28,26,26,27,28,26,27,28,26,27,28,27,0,26,27,28,0,26,27,28,26,27,28,26,27,28,26,27,28,26,27,28,26,26,27,28,0,0,0,0,0,0,0,0,29,30,31,32,33,29,30,31,32,33,29,30,29,30,0,29,30,29,30,29,30,31,32,33,0,29,30,31,32,33,30,29,30,31,32,33,0,29,30,0,29,30,29,30,31,32,33,29,30,31,32,33,29,30,31,32,33,0,0,29,30,31,32,33,0,34,34,34,34,34,34,34,34,34,34,34,34,0,0,0,35,36,37,38,39,35,36,37,38,39,35,37,38,35,37,35,36,37,38,39,0,35,36,37,38,39,35,36,39,0,35,37,38,0,38,35,36,37,38,39,35,36,37,38,39,35,36,37,38,39,0,35,36,37,38,39,0,40,40,40,40,40,40,40,40,40,40,40,0,0,0,0,0,41,42,43,44,45,46,47,48,41,42,43,44,45,46,47,48,47,48,47,48,0,41,41,43,47,48,48,41,47,48,41,42,43,44,45,46,47,48,0,0,41,42,43,44,45,46,47,48,43,41,43,47,42,44,45,46,0,41,43,47,48,0,47,48,41,42,43,44,45,46,47,48,41,42,43,44,45,46,47,48,41,42,43,44,45,46,47,48,0,48,41,42,43,44,45,46,47,48,0,49,49,49,49,49,49,49,49,49,49,49,49,49,0,0,0,0,0,0,50,51,50,51,52,53,50,54,55,56,51,57,52,53,50,54,55,56,51,57,53,56,0,52,53,55,56,52,53,55,56,56,55,56,53,56,52,55,52,50,50,55,51,51,52,53,50,50,50,54,55,56,51,51,51,57,53,52,53,0,52,53,50,54,55,56,51,57,55,56,55,56,54,57,0,52,55,0,52,53,55,56,50,51,52,53,50,54,55,56,51,57,52,53,50,54,55,56,51,57,52,53,50,54,55,56,51,57,53,52,53,52,53,50,54,55,56,51,57,0,58,58,58,58,58,58,58,58,58,58,58,0,0,0,0,0,0,0,59,60,59,60,59,59,60,59,59,60,59,60,59,59,59,60,59,60,59,60,59,60,0,0,61,62,63,61,62,63,62,61,62,62,63,0,61,62,61,62,61,62,63,61,62,61,62,61,62,63,62,61,62,63,61,62,63,61,62,63,61,62,63,0,0,64,65,66,64,65,66,64,65,64,65,66,65,64,65,64,65,66,0,65,65,65,66,64,65,64,65,66,64,65,66,64,65,66,64,65,66,0,67,67,67,67,67,67,67,67,67,67,67,67,0,0,0,0,0,0,68,69,68,69,68,68,68,68,68,69,0,0,68,69,68,69,68,68,68,69,68,69,68,69,68,69,0,70,70,70,70,70,70,70,70,70,70,70,70,70,0,71,72,71,72,71,71,71,71,71,72,71,72,72,71,71,71,71,72,71,72,71,72,0,71,72,0,73,74,73,74,73,73,73,73,73,74,73,74,74,73,73,73,74,73,74,73,74,73,0,73,74,0,0,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,75,0,76,0,76,0,76,9,76,9,9,9,9,76,9,9,76,76,9,9,76,9,76,76,9,76,9,76,9,76,76,76,9,0,0,77,77,0,77,77,77,0,0,77,77,77,0,0,0,77,77,77,77,0,78,78,78,78,78,78,78,78,78,78,78,78,0,0,0,79,79,79,79,79,79,79,79,79,79,79,79,79,0,79,79,80,81,81,81,81,81,0,81,82,81,81,0,0,81,81,81,81,0,82,0,0,81,81,81,81,81,81,80,81,83,82,80,81,83,82,83,80,81,82,83,81,82,80,80,81,81,82,82,80,81,81,81,81,81,81,81,83,82,82,82,80,81,83,82,81,82,83,80,81,82,81,82,80,81,82,80,81,83,82,80,81,83,82,80,81,83,82,80,81,83,82,0,0,0,84,85,84,85,85,84,85,84,85,85,84,85,85,84,85,84,85,84,85,84,85,0,0,0,0,0,0,0,0,0,0,0,0,0,86,87,86,88,87,86,88,87,87,87,86,87,86,88,86,87,86,88,0,88,87,87,87,87,86,88,87,86,88,87,86,88,87,86,88,0,0,0,89,90,89,91,90,89,91,90,90,90,89,90,89,91,89,90,89,91,0,91,90,90,90,90,89,91,90,89,91,90,89,91,90,89,91,0,92,92,92,92,92,92,92,92,92,92,92,0,0,0,0,93,94,95,93,94,95,93,94,95,95,93,94,0,95,93,94,93,94,95,93,94,95,95,95,95,0,0,95,95,95,93,94,95,93,94,95,93,94,95,93,94,0,96,96,96,96,96,96,96,96,96,96,96,0,0,97,98,97,98,97,97,97,98,97,98,97,0,98,97,97,0,0,0,97,97,97,98,97,98,97,98,97,98,0,99,99,99,99,99,99,99,99,99,99,99,0,0,0,0,0,0,0,0,100,0,100,101,102,100,101,102,101,101,101,100,101,101,101,100,101,102,100,100,101,102,101,102,101,101,101,100,101,102,100,101,102,100,101,102,100,101,102,0,0,0,103,104,103,104,103,103,103,104,0,103,104,0,103,104,103,103,103,103,103,104,103,104,103,104,103,104,0,105,105,105,105,105,105,105,105,105,105,105,105,0,0,0,0,106,107,108,109,106,107,108,109,106,107,108,106,107,108,106,107,106,108,106,107,108,109,106,107,108,109,108,108,106,108,108,109,108,108,106,107,108,106,107,108,109,106,107,108,109,106,107,108,109,0,107,106,107,108,109,0,0,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,110,111,0,111,111,111,111,111,111,111,111,111,111,111,0,0,0,0,0,0,0,112,112,113,114,115,116,117,10,112,113,114,115,116,117,10,0,112,113,114,115,116,117,10,112,113,114,115,116,117,10,112,10,10,112,113,114,115,116,117,10,112,115,112,113,114,115,116,117,10,112,113,114,115,116,117,10,114,113,112,115,112,113,114,115,116,117,10,112,115,10,114,115,116,117,112,114,115,10,10,114,113,10,0,0,10,10,112,113,114,115,116,117,10,112,113,114,115,116,117,10,112,113,114,115,116,117,10,112,113,114,115,116,117,10,114,115,116,117,112,114,115,112,113,114,115,116,117,10,0,0,0,0,118,118,118,118,118,118,118,118,118,118,118,0,0,119,120,121,122,119,120,121,122,0,119,120,121,122,119,119,121,121,0,0,119,120,121,122,119,119,121,121,120,122,0,119,120,121,122,119,120,121,122,119,120,121,122,119,120,121,122,0,0,0,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,123,0,0,0,0,0,0,0,124,125,124,126,125,124,126,125,125,124,125,124,126,124,125,124,126,125,126,125,125,0,0,0,125,125,124,126,125,124,126,125,124,126,125,124,126,0,127,127,127,127,127,127,127,127,127,127],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,[[],["settings",3]],[[],["filemap",3]],[[],["str",15]],[[],["str",15]],[[],["str",15]],[[],["str",15]],[[],["str",15]],[[],["string",3]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[["cookieidentitypolicy",3],["identityservice",3]]],[[],["jsonconfig",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[],["result",6]],null,null,null,null,null,null,null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,[[["serviceconfig",3]]],null,null,[[]],[[]],[[]],[[]],[[],["accountcheckpayload",3]],[[],["accountcheckresp",3]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[["serviceconfig",3]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[]],[[]],[[]],[[]],null,[[]],[[]],[[["appservice",3]]],[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["email",3]],[[]],[[],["result",4]],null,null,[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],[[],["result",4]],[[["serviceconfig",3]]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,[[]],[[]],null,null,[[]],null,[[]],[[],["account",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,null,[[]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["secret",3]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],null,[[],["result",4]],[[["serviceconfig",3]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],null,null,[[["serviceconfig",3]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],null,null,[[],["auth",3]],null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["register",3]],[[],["login",3]],[[],["password",3]],[[]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appdata",6],["login",3]]],null,null,null,[[["register",3],["appdata",6]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,[[]],[[]],[[]],null,null,[[["usize",15]],["string",3]],null,[[["serviceconfig",3]]],null,null,[[["str",15],["appdata",6],["u32",15],["identity",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["mcaptchaid",3]],[[],["mcaptchadetails",3]],[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],null,null,null,[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],null,[[],["result",4]],[[],["result",4]],[[["serviceconfig",3]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,[[["appdata",6],["str",15]]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],null,[[]],null,[[]],[[],["mcaptcha",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,null,[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],null,[[["appservice",3]]],[[["appservice",3]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["serviceconfig",3]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],null,[[]],[[],["duration",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["levels",3]],[[],["i32levels",3]],[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,null,[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appdata",6],["str",15]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["serviceconfig",3]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[]],[[]],null,[[]],null,[[]],[[],["levels",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],[["result",4],["builddetails",3],["builddetailsbuildererror",4]]],[[],[["healthbuildererror",4],["result",4],["health",3]]],null,[[],["builddetails",3]],[[],["builddetailsbuilder",3]],[[],["health",3]],[[],["healthbuilder",3]],[[]],[[]],[[]],[[]],[[["bool",15]]],null,null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[["string",3]]],[[["uninitializedfielderror",3]]],[[]],[[]],[[]],[[]],[[["uninitializedfielderror",3]]],[[]],[[["string",3]]],[[]],[[["str",15]]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["option",4]],["bool",15]],[[["option",4],["bool",15]]],null,null,[[["appservice",3]]],[[["appservice",3]]],null,[[],["result",4]],[[],["result",4]],[[["serviceconfig",3]]],[[]],[[]],[[]],[[]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[["str",15]]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],null,[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,[[["serviceconfig",3]]],null,null,[[]],[[]],[[]],[[]],[[],["result",4]],[[]],[[]],null,[[]],[[]],null,[[["appservice",3]]],[[],["result",4]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[]],[[]],[[["notification",3]]],[[]],null,null,null,null,null,[[]],[[]],[[]],null,null,null,null,null,null,[[["appservice",3]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[]],[[]],[[]],null,null,null,[[]],[[]],[[]],null,null,null,null,[[["appservice",3]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,null,[[]],[[]],[[]],null,[[]],null,[[],["notifications",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,[[["serviceconfig",3]]],null,null,null,[[]],[[]],[[]],[[]],[[],["getconfigpayload",3]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],[[]],[[]],null,[[["appdata",6],["str",15]]],[[]],[[]],null,[[["appservice",3]]],[[],["result",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,[[]],[[]],[[]],null,[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,null,[[]],null,[[]],[[]],[[]],[[]],[[],["validationtoken",3]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[],["result",4]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,[[]],[[]],null,[[]],[[]],[[]],[[]],[[],["captchavalidateresp",3]],[[]],[[],["result",4]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[],["result",4]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[]],[[]],null,null,null,null,[[]],[[]],null,[[]],[[]],null,null,null,[[],["routes",3]],null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,[[]],[[]],[[]],[[]],null,null,null,[[]],[[]],[[],[["option",4],["asyncsmtptransport",3]]],[[["string",3]]],[[]],[[]],null,[[]],[[]],[[["mastertrait",8],["addr",3],["addr",3],["save",8]],[["save",8],["system",3],["mastertrait",8]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[["verifycaptcharesult",3]]],[[["work",3]]],[[]],[[]],null,null,[[]],[[]],[[["string",3],["path",3]]],[[]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],["httpresponse",3]],[[]],[[]],[[]],[[],["filenames",4]],null,[[["serviceconfig",3]]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,[[]],[[]],[[]],null,[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,[[]],[[]],[[],["indexpage",3]],[[]],[[]],[[]],[[["str",15]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[["data",3],["str",15]]],null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["bool",15]],[[["serviceerror",4]],["bool",15]],[[["pageerror",4]],["bool",15]],null,[[],["httpresponse",3]],[[],["httpresponse",3]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[["error",4]]],[[["captchaerror",4]],["serviceerror",4]],[[["credserror",4]],["serviceerror",4]],[[["validationerrors",3]],["serviceerror",4]],[[]],[[["parseerror",4]],["serviceerror",4]],[[["smtperror",3]]],[[]],[[["serviceerror",4]]],[[["error",4]]],[[]],[[]],[[]],[[]],[[]],[[["serviceerror",4]],["bool",15]],[[["pageerror",4]],["bool",15]],[[],["result",4]],[[],[["error",8],["option",4]]],[[],[["error",8],["option",4]]],[[],[["error",8],["option",4]]],[[],["statuscode",3]],[[],["statuscode",3]],[[],["string",3]],[[],["string",3]],[[],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,[[]],[[]],[[]],[[]],[[["servicerequest",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[["context",3]],[["result",4],["poll",4]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,null,null,null,null,[[["serviceconfig",3]]],null,null,null,[[["serviceconfig",3]]],null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["indexpage",3]],[[]],[[]],[[],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["indexpage",3]],[[]],[[]],[[],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],null,null,[[],["auth",3]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["errorpage",3]],[[]],[[],["string",3]],[[],["string",3]],[[["usize",15],["path",3]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["str",15]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],null,[[["serviceconfig",3]]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,[[]],[[]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],null,null,[[]],[[]],[[]],[[]],[[],["indexpage",3]],[[]],[[]],[[]],[[]],[[]],[[["vec",3],["mcaptchadetails",3]]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],null,[[["serviceconfig",3]]],null,null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,[[]],[[]],[[]],null,[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,[[["serviceconfig",3]]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["indexpage",3]],[[]],[[]],[[],["string",3]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,null,null,[[]],[[]],[[]],[[]],[[],["indexpage",3]],[[]],[[]],[[]],[[["appdata",6],["identity",3]]],[[]],[[]],null,[[["vec",3],["mcaptchadetails",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],null,null,[[]],[[]],[[]],[[]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]],null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["mcaptchaconfig",3]],[[],["level",3]],[[],["indexpage",3]],[[]],[[]],[[]],null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,[[["vec",3],["string",3],["level",3],["mcaptchaconfig",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,[[]],[[]],[[]],[[]],null,null,null,null,[[]],[[]],null,null,[[]],null,[[]],[[],["routes",3]],null,null,null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["config",3]]],[[],["server",3]],[[],["captcha",3]],[[],["smtp",3]],[[],["databasebuilder",3]],[[],["database",3]],[[],["redis",3]],[[],["settings",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["url",3]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],[["result",4],["configerror",4]]],null,null,null,null,null,null,null,null,null,null,null,null,[[["config",3]]],[[["databasebuilder",3],["config",3]]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["serviceconfig",3]]],null,null,[[]],[[]],null,[[]],[[["str",15]],[["option",4],["str",15]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],[["option",4],["cow",4]]],[[["str",15]],["httpresponse",3]],[[["str",15]],["httpresponse",3]],[[]],[[]],[[]],[[]],[[],["filenames",4]],[[]],[[],["filenames",4]],[[]],[[["appservice",3]]],[[["appservice",3]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,[[]],[[]],[[],["stats",3]],[[]],null,null,[[],["result",4]],[[["str",15],["pgpool",6]]],[[["str",15],["pgpool",6]]],[[["str",15],["pgpool",6]]],[[["formatter",3]],["result",6]],[[]],[[]],[[["str",15],["pgpool",6]]],[[],["result",4]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],[[["str",15],["pgpool",6]]],[[["str",15],["pgpool",6]]],[[["str",15],["pgpool",6]]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[],["indexpage",3]],[[]],[[],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],[["rendererror",4],["result",4]]],null,[[["serviceconfig",3]]],null,[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[]],[[]],[[]],null,[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],null,[[]]],"p":[[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,"Data"],[3,"Settings"],[3,"AccountCheckPayload"],[3,"AccountCheckResp"],[3,"delete_account"],[3,"Email"],[3,"email_exists"],[3,"set_email"],[3,"Account"],[3,"Secret"],[3,"get_secret"],[3,"update_user_secret"],[3,"username_exists"],[3,"register"],[3,"login"],[3,"signout"],[3,"Auth"],[3,"Register"],[3,"Login"],[3,"Password"],[3,"MCaptchaID"],[3,"MCaptchaDetails"],[3,"update_token"],[3,"get_token"],[3,"delete_mcaptcha"],[3,"MCaptcha"],[3,"UpdateDuration"],[3,"update_duration"],[3,"GetDurationResp"],[3,"GetDuration"],[3,"get_duration"],[3,"Duration"],[3,"AddLevels"],[3,"add_levels"],[3,"UpdateLevels"],[3,"update_levels"],[3,"delete_levels"],[3,"get_levels"],[3,"Levels"],[3,"I32Levels"],[3,"Levels"],[4,"BuildDetailsBuilderError"],[4,"HealthBuilderError"],[3,"BuildDetails"],[3,"BuildDetailsBuilder"],[3,"build_details"],[3,"Health"],[3,"HealthBuilder"],[3,"health"],[3,"Meta"],[3,"AddNotification"],[3,"add_notification"],[3,"Notification"],[3,"NotificationResp"],[3,"get_notification"],[3,"MarkReadReq"],[3,"NotificationResp"],[3,"mark_read"],[3,"Notifications"],[3,"GetConfigPayload"],[3,"get_config"],[3,"PoW"],[3,"ValidationToken"],[3,"verify_pow"],[3,"CaptchaValidateResp"],[3,"validate_captcha_token"],[3,"Routes"],[4,"SystemGroup"],[3,"Asset"],[3,"Docs"],[3,"IndexPage"],[3,"SmtpErrorWrapper"],[4,"ServiceError"],[4,"PageError"],[3,"ErrorToResponse"],[3,"CheckLogin"],[3,"CheckLoginMiddleware"],[3,"INDEX"],[3,"IndexPage"],[3,"login"],[3,"INDEX"],[3,"IndexPage"],[3,"join"],[3,"Auth"],[3,"INTERNAL_SERVER_ERROR_BODY"],[3,"UNKNOWN_ERROR_BODY"],[3,"ErrorPage"],[3,"Errors"],[3,"IndexPage"],[3,"panel"],[3,"Panel"],[3,"INDEX"],[3,"IndexPage"],[3,"add_sitekey"],[3,"IndexPage"],[3,"list_sitekeys"],[3,"Sitekey"],[3,"McaptchaConfig"],[3,"Level"],[3,"IndexPage"],[3,"view_sitekey"],[3,"Routes"],[4,"Methods"],[3,"Server"],[3,"Captcha"],[3,"Smtp"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Redis"],[3,"FileMap"],[3,"Asset"],[3,"static_files"],[3,"Favicons"],[3,"favicons"],[3,"Stats"],[3,"INDEX_PAGE"],[3,"IndexPage"],[3,"show_widget"],[3,"Widget"]]},\ -"mcaptcha_browser":{"doc":"mCaptcha is a proof of work based Denaial-of-Service …","t":[3,5,11,11,11,11,11,5,11,12,12,11,11,11,11],"n":["Work","__wasm_bindgen_generated_gen_pow","borrow","borrow_mut","deserialize","from","from","gen_pow","into","nonce","result","serialize","try_from","try_into","type_id"],"q":["mcaptcha_browser","","","","","","","","","","","","","",""],"d":["","generate proof-of-work","","","","","","generate proof-of-work","","","","","","",""],"i":[0,0,1,1,1,1,1,0,1,1,1,1,1,1,1],"f":[null,[[]],[[]],[[]],[[],["result",4]],[[]],[[["pow",3],["string",3]]],[[["u32",15],["string",3]],["string",3]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]]],"p":[[3,"Work"]]},\ +"mcaptcha_browser":{"doc":"mCaptcha is a proof of work based Denaial-of-Service …","t":[3,5,11,11,11,11,11,5,11,12,12,11,11,11,11],"n":["Work","__wasm_bindgen_generated_gen_pow","borrow","borrow_mut","deserialize","from","from","gen_pow","into","nonce","result","serialize","try_from","try_into","type_id"],"q":["mcaptcha_browser","","","","","","","","","","","","","",""],"d":["","generate proof-of-work","","","","","","generate proof-of-work","","","","","","",""],"i":[0,0,1,1,1,1,1,0,1,1,1,1,1,1,1],"f":[null,[[]],[[]],[[]],[[],["result",4]],[[]],[[["string",3],["pow",3]]],[[["string",3],["u32",15]],["string",3]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]]],"p":[[3,"Work"]]},\ "tests_migrate":{"doc":"","t":[3,3,3,12,11,11,5,5,12,12,0,12,12,12,11,11,11,11,12,5,12,12,12,0,12,12,11,11,11,11,3,13,6,13,4,11,11,11,11,12,12,12,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,3,3,3,3,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,11,12,11,11,11,11,11,11,11,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,5,5,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,11,11,11,11,11,11,11],"n":["Data","SETTINGS","Settings","__private_field","borrow","borrow_mut","build","cache_bust","captcha","creds","data","database","db","debug","deref","from","initialize","into","mailer","main","pow","redis","server","settings","smtp","source_code","try_from","try_into","type_id","vzip","Data","Embedded","Mailer","Redis","SystemGroup","borrow","borrow","borrow_mut","borrow_mut","captcha","creds","db","from","from","get_mailer","get_pow","into","into","mailer","new","new","new_system","try_from","try_from","try_into","try_into","type_id","type_id","validate_verification_tokens","verify_pow","vzip","vzip","Captcha","Database","DatabaseBuilder","Redis","Server","Settings","Smtp","allow_registration","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","check_url","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","cookie_secret","database","debug","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","domain","extract_database_url","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","gc","get_ip","hostname","into","into","into","into","into","into","into","ip","name","new","password","password","pool","pool","port","port","port","pow","redis","reply","salt","server","set_database_url","set_from_database_url","smtp","source_code","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","url","url","url","url","url_prefix","username","username","vzip","vzip","vzip","vzip","vzip","vzip","vzip"],"q":["tests_migrate","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","tests_migrate::data","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","tests_migrate::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"d":["App data","","","","","","","","mCaptcha system: Redis cache, etc.","credential management configuration","App data: redis cache, database connections, etc.","","databse pool","","","","","","email client","","","","","","","","","","","","App data","","Mailer data type AsyncSmtpTransport","","Represents mCaptcha cache and master system. When Redis …","","","","","mCaptcha system: Redis cache, etc.","credential management configuration","databse pool","","","","utility function to get difficulty factor of siteidand …","","","email client","","create new instance of app data","","","","","","","","utility function to validate verification tokens","utility function to verify [Work]","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],"i":[0,0,0,1,1,1,0,0,2,2,0,3,2,3,1,1,1,1,2,0,3,3,3,0,3,3,1,1,1,1,0,4,0,4,0,4,2,4,2,2,2,2,4,2,2,4,4,2,2,4,2,4,4,2,4,2,4,2,4,4,4,2,0,0,0,0,0,0,0,5,5,6,7,8,9,10,3,5,6,7,8,9,10,3,0,5,6,7,8,9,10,3,5,6,7,8,9,10,3,5,3,3,5,6,7,8,9,10,3,5,8,5,6,7,8,9,10,3,5,6,7,8,9,10,3,7,6,5,8,5,6,7,8,9,10,3,5,8,3,7,8,9,10,5,7,8,3,3,7,6,3,0,0,3,3,5,6,7,8,9,10,3,5,6,7,8,9,10,3,5,6,7,8,9,10,3,5,6,7,8,9,10,3,7,8,9,10,5,7,8,5,6,7,8,9,10,3],"f":[null,null,null,null,[[]],[[]],[[]],[[]],null,null,null,null,null,null,[[],["settings",3]],[[]],[[]],[[]],null,[[]],null,null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[]],null,null,null,null,null,[[]],[[]],[[]],[[]],null,null,null,[[]],[[]],[[],[["asyncsmtptransport",3],["option",4]]],[[["string",3]]],[[]],[[]],null,[[]],[[]],[[["addr",3],["save",8],["mastertrait",8],["addr",3]],[["system",3],["mastertrait",8],["save",8]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[["verifycaptcharesult",3]]],[[["work",3]]],[[]],[[]],null,null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["config",3]]],[[],["server",3]],[[],["captcha",3]],[[],["smtp",3]],[[],["databasebuilder",3]],[[],["database",3]],[[],["redis",3]],[[],["settings",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["url",3]]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],[["configerror",4],["result",4]]],null,null,null,null,null,null,null,null,null,null,null,null,[[["config",3]]],[[["databasebuilder",3],["config",3]]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],[[],["typeid",3]],null,null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]]],"p":[[3,"SETTINGS"],[3,"Data"],[3,"Settings"],[4,"SystemGroup"],[3,"Server"],[3,"Captcha"],[3,"Smtp"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Redis"]]}\ }'); if (window.initSearch) {window.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 47263206..349727d6 100644 --- a/src/mcaptcha/api/v1/auth.rs.html +++ b/src/mcaptcha/api/v1/auth.rs.html @@ -232,6 +232,8 @@ 229 230 231 +232 +233/* * Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net> @@ -416,6 +418,8 @@ let msg = err.message(); if msg.contains("mcaptcha_users_name_key") { return Err(ServiceError::UsernameTaken); + } else if msg.contains("mcaptcha_users_email_key") { + return Err(ServiceError::EmailTaken); } else if msg.contains("mcaptcha_users_secret_key") { continue; } else { diff --git a/src/mcaptcha/api/v1/mcaptcha/captcha.rs.html b/src/mcaptcha/api/v1/mcaptcha/captcha.rs.html index 315046ae..da1cea66 100644 --- a/src/mcaptcha/api/v1/mcaptcha/captcha.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/captcha.rs.html @@ -575,11 +575,11 @@ register_and_signin(NAME, EMAIL, PASSWORD).await; let (data, _, signin_resp, token_key) = add_levels_util(NAME, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; // 4. delete token let del_token = test::call_service( - &mut app, + &app, post_request!(&token_key, ROUTES.mcaptcha.delete) .cookie(cookies.clone()) .to_request(), @@ -603,11 +603,11 @@ register_and_signin(NAME, EMAIL, PASSWORD).await; let (data, _, signin_resp, token_key) = add_levels_util(NAME, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; // 2. update token key let update_token_resp = test::call_service( - &mut app, + &app, post_request!(&token_key, ROUTES.mcaptcha.update_key) .cookie(cookies.clone()) .to_request(), @@ -619,7 +619,7 @@ // get token key with updated key let get_token_resp = test::call_service( - &mut app, + &app, post_request!(&updated_token, ROUTES.mcaptcha.get_token) .cookie(cookies.clone()) .to_request(), @@ -635,7 +635,7 @@ get_token_key.key = "nonexistent".into(); let get_nonexistent_token_resp = test::call_service( - &mut app, + &app, post_request!(&get_token_key, ROUTES.mcaptcha.get_token) .cookie(cookies.clone()) .to_request(), diff --git a/src/mcaptcha/api/v1/mcaptcha/duration.rs.html b/src/mcaptcha/api/v1/mcaptcha/duration.rs.html index 7d57b1c5..9d10c8dd 100644 --- a/src/mcaptcha/api/v1/mcaptcha/duration.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/duration.rs.html @@ -352,7 +352,7 @@ register_and_signin(NAME, EMAIL, PASSWORD).await; let (data, _, signin_resp, token_key) = add_levels_util(NAME, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; let update = UpdateDuration { key: token_key.key.clone(), @@ -362,7 +362,7 @@ // check default let get_level_resp = test::call_service( - &mut app, + &app, post_request!(&token_key, ROUTES.duration.get) .cookie(cookies.clone()) .to_request(), @@ -375,7 +375,7 @@ // update and check changes let update_duration = test::call_service( - &mut app, + &app, post_request!(&update, ROUTES.duration.update) .cookie(cookies.clone()) .to_request(), @@ -383,7 +383,7 @@ .await; assert_eq!(update_duration.status(), StatusCode::OK); let get_level_resp = test::call_service( - &mut app, + &app, post_request!(&token_key, ROUTES.duration.get) .cookie(cookies.clone()) .to_request(), diff --git a/src/mcaptcha/api/v1/mcaptcha/levels.rs.html b/src/mcaptcha/api/v1/mcaptcha/levels.rs.html index d6b03277..f1fb59f6 100644 --- a/src/mcaptcha/api/v1/mcaptcha/levels.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/levels.rs.html @@ -651,14 +651,14 @@ register_and_signin(NAME, EMAIL, PASSWORD).await; let (data, _, signin_resp, key) = add_levels_util(NAME, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; // 2. get level let levels = vec![L1, L2]; let get_level_resp = test::call_service( - &mut app, + &app, post_request!(&key, ROUTES.levels.get) .cookie(cookies.clone()) .to_request(), @@ -684,7 +684,7 @@ key: key.key.clone(), }; let add_token_resp = test::call_service( - &mut app, + &app, post_request!(&add_level, ROUTES.levels.update) .cookie(cookies.clone()) .to_request(), @@ -692,7 +692,7 @@ .await; assert_eq!(add_token_resp.status(), StatusCode::OK); let get_level_resp = test::call_service( - &mut app, + &app, post_request!(&key, ROUTES.levels.get) .cookie(cookies.clone()) .to_request(), @@ -717,7 +717,7 @@ key: key.key.clone(), }; let add_token_resp = test::call_service( - &mut app, + &app, post_request!(&add_level, ROUTES.levels.delete) .cookie(cookies.clone()) .to_request(), @@ -725,7 +725,7 @@ .await; assert_eq!(add_token_resp.status(), StatusCode::OK); let get_level_resp = test::call_service( - &mut app, + &app, post_request!(&key, ROUTES.levels.get) .cookie(cookies.clone()) .to_request(), diff --git a/src/mcaptcha/api/v1/meta.rs.html b/src/mcaptcha/api/v1/meta.rs.html index 20048f20..8a9a5373 100644 --- a/src/mcaptcha/api/v1/meta.rs.html +++ b/src/mcaptcha/api/v1/meta.rs.html @@ -270,10 +270,10 @@ #[actix_rt::test] async fn build_details_works() { - let mut app = test::init_service(App::new().configure(services)).await; + let app = test::init_service(App::new().configure(services)).await; let resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(V1_API_ROUTES.meta.build_details) .to_request(), @@ -286,10 +286,10 @@ async fn health_works() { println!("{}", V1_API_ROUTES.meta.health); let data = Data::new().await; - let mut app = get_app!(data).await; + let app = get_app!(data).await; let resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(V1_API_ROUTES.meta.health) .to_request(), diff --git a/src/mcaptcha/api/v1/notifications/add.rs.html b/src/mcaptcha/api/v1/notifications/add.rs.html index a4809281..1d7d3d1f 100644 --- a/src/mcaptcha/api/v1/notifications/add.rs.html +++ b/src/mcaptcha/api/v1/notifications/add.rs.html @@ -196,7 +196,7 @@ register_and_signin(NAME2, EMAIL2, PASSWORD).await; let (data, _creds, signin_resp) = signin(NAME1, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; let msg = AddNotification { to: NAME2.into(), @@ -205,7 +205,7 @@ }; let send_notification_resp = test::call_service( - &mut app, + &app, post_request!(&msg, V1_API_ROUTES.notifications.add) .cookie(cookies.clone()) .to_request(), diff --git a/src/mcaptcha/api/v1/notifications/get.rs.html b/src/mcaptcha/api/v1/notifications/get.rs.html index cf11277f..f93e414c 100644 --- a/src/mcaptcha/api/v1/notifications/get.rs.html +++ b/src/mcaptcha/api/v1/notifications/get.rs.html @@ -269,7 +269,7 @@ let (_data, _creds2, signin_resp2) = signin(NAME2, PASSWORD).await; let cookies = get_cookie!(signin_resp); let cookies2 = get_cookie!(signin_resp2); - let mut app = get_app!(data).await; + let app = get_app!(data).await; let msg = AddNotification { to: NAME2.into(), @@ -278,7 +278,7 @@ }; let send_notification_resp = test::call_service( - &mut app, + &app, post_request!(&msg, V1_API_ROUTES.notifications.add) .cookie(cookies.clone()) .to_request(), @@ -287,7 +287,7 @@ assert_eq!(send_notification_resp.status(), StatusCode::OK); let get_notifications_resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(V1_API_ROUTES.notifications.get) .cookie(cookies2.clone()) diff --git a/src/mcaptcha/api/v1/notifications/mark_read.rs.html b/src/mcaptcha/api/v1/notifications/mark_read.rs.html index 2a864113..c090a3ac 100644 --- a/src/mcaptcha/api/v1/notifications/mark_read.rs.html +++ b/src/mcaptcha/api/v1/notifications/mark_read.rs.html @@ -252,7 +252,7 @@ let (_data, _creds2, signin_resp2) = signin(NAME2, PASSWORD).await; let cookies = get_cookie!(signin_resp); let cookies2 = get_cookie!(signin_resp2); - let mut app = get_app!(data).await; + let app = get_app!(data).await; let msg = AddNotification { to: NAME2.into(), @@ -261,7 +261,7 @@ }; let send_notification_resp = test::call_service( - &mut app, + &app, post_request!(&msg, V1_API_ROUTES.notifications.add) .cookie(cookies.clone()) .to_request(), @@ -270,7 +270,7 @@ assert_eq!(send_notification_resp.status(), StatusCode::OK); let get_notifications_resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(V1_API_ROUTES.notifications.get) .cookie(cookies2.clone()) @@ -290,7 +290,7 @@ id: notification.id, }; let mark_read_resp = test::call_service( - &mut app, + &app, post_request!(&mark_read_payload, V1_API_ROUTES.notifications.mark_read) .cookie(cookies2.clone()) .to_request(), @@ -299,7 +299,7 @@ assert_eq!(mark_read_resp.status(), StatusCode::OK); let get_notifications_resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(V1_API_ROUTES.notifications.get) .cookie(cookies2.clone()) diff --git a/src/mcaptcha/api/v1/pow/get_config.rs.html b/src/mcaptcha/api/v1/pow/get_config.rs.html index d14311e4..b8efddc8 100644 --- a/src/mcaptcha/api/v1/pow/get_config.rs.html +++ b/src/mcaptcha/api/v1/pow/get_config.rs.html @@ -380,7 +380,7 @@ register_and_signin(NAME, EMAIL, PASSWORD).await; let (data, _, signin_resp, token_key) = add_levels_util(NAME, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; let get_config_payload = GetConfigPayload { key: token_key.key.clone(), @@ -389,7 +389,7 @@ // update and check changes let get_config_resp = test::call_service( - &mut app, + &app, post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config) .cookie(cookies.clone()) .to_request(), diff --git a/src/mcaptcha/api/v1/pow/verify_pow.rs.html b/src/mcaptcha/api/v1/pow/verify_pow.rs.html index 6d7a295a..be8b7a40 100644 --- a/src/mcaptcha/api/v1/pow/verify_pow.rs.html +++ b/src/mcaptcha/api/v1/pow/verify_pow.rs.html @@ -215,7 +215,7 @@ register_and_signin(NAME, EMAIL, PASSWORD).await; let (data, _, _signin_resp, token_key) = add_levels_util(NAME, PASSWORD).await; - let mut app = get_app!(data).await; + let app = get_app!(data).await; let get_config_payload = GetConfigPayload { key: token_key.key.clone(), @@ -224,7 +224,7 @@ // update and check changes let get_config_resp = test::call_service( - &mut app, + &app, post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config) .to_request(), ) @@ -248,14 +248,14 @@ }; let pow_verify_resp = test::call_service( - &mut app, + &app, post_request!(&work, V1_API_ROUTES.pow.verify_pow).to_request(), ) .await; assert_eq!(pow_verify_resp.status(), StatusCode::OK); let string_not_found = test::call_service( - &mut app, + &app, post_request!(&work, V1_API_ROUTES.pow.verify_pow).to_request(), ) .await; @@ -264,7 +264,7 @@ assert_eq!(err.error, "Challenge: not found"); // let pow_config_resp = test::call_service( - // &mut app, + // &app, // post_request!(&get_config_payload, V1_API_ROUTES.pow.get_config).to_request(), // ) // .await; diff --git a/src/mcaptcha/api/v1/pow/verify_token.rs.html b/src/mcaptcha/api/v1/pow/verify_token.rs.html index 69f1bc9e..01ada740 100644 --- a/src/mcaptcha/api/v1/pow/verify_token.rs.html +++ b/src/mcaptcha/api/v1/pow/verify_token.rs.html @@ -246,7 +246,7 @@ register_and_signin(NAME, EMAIL, PASSWORD).await; let (data, _, _signin_resp, token_key) = add_levels_util(NAME, PASSWORD).await; - let mut app = get_app!(data).await; + let app = get_app!(data).await; let get_config_payload = GetConfigPayload { key: token_key.key.clone(), @@ -255,7 +255,7 @@ // update and check changes let get_config_resp = test::call_service( - &mut app, + &app, post_request!(&get_config_payload, GET_URL).to_request(), ) .await; @@ -278,7 +278,7 @@ }; let pow_verify_resp = test::call_service( - &mut app, + &app, post_request!(&work, VERIFY_CAPTCHA_URL).to_request(), ) .await; @@ -291,7 +291,7 @@ }; let validate_client_token = test::call_service( - &mut app, + &app, post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(), ) .await; @@ -302,7 +302,7 @@ // string not found let string_not_found = test::call_service( - &mut app, + &app, post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(), ) .await; @@ -316,7 +316,7 @@ // key not found let key_not_found = test::call_service( - &mut app, + &app, post_request!(&validate_payload, VERIFY_TOKEN_URL).to_request(), ) .await; diff --git a/src/mcaptcha/docs.rs.html b/src/mcaptcha/docs.rs.html index a92a3d3b..0f92efd3 100644 --- a/src/mcaptcha/docs.rs.html +++ b/src/mcaptcha/docs.rs.html @@ -235,7 +235,7 @@ async fn docs_works() { const FILE: &str = "favicon-32x32.png"; - let mut app = test::init_service( + let app = test::init_service( App::new() .wrap(actix_middleware::NormalizePath::new( actix_middleware::TrailingSlash::Trim, @@ -245,14 +245,14 @@ .await; let resp = test::call_service( - &mut app, + &app, test::TestRequest::get().uri(DOCS.home).to_request(), ) .await; assert_eq!(resp.status(), StatusCode::OK); let resp = test::call_service( - &mut app, + &app, test::TestRequest::get().uri(DOCS.spec).to_request(), ) .await; @@ -261,7 +261,7 @@ let uri = format!("{}{}", DOCS.home, FILE); let resp = test::call_service( - &mut app, + &app, test::TestRequest::get().uri(&uri).to_request(), ) .await; diff --git a/src/mcaptcha/email/verification.rs.html b/src/mcaptcha/email/verification.rs.html index 859267b5..5a053c20 100644 --- a/src/mcaptcha/email/verification.rs.html +++ b/src/mcaptcha/email/verification.rs.html @@ -131,7 +131,6 @@ 128 129 130 -131/* * Copyright (C) 2021 Aravinth Manivannan <realaravinth@batsense.net> @@ -256,7 +255,6 @@ project website: {}", let smtp = SETTINGS.smtp.as_ref().unwrap(); let from_addr = &data["headers"]["from"]; - ["address"]; assert!(from_addr.to_string().contains(&smtp.from)); diff --git a/src/mcaptcha/pages/errors.rs.html b/src/mcaptcha/pages/errors.rs.html index 0571ff77..df87e732 100644 --- a/src/mcaptcha/pages/errors.rs.html +++ b/src/mcaptcha/pages/errors.rs.html @@ -215,10 +215,10 @@ #[actix_rt::test] async fn error_pages_work() { - let mut app = test::init_service(App::new().configure(services)).await; + let app = test::init_service(App::new().configure(services)).await; let resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(PAGES.errors.internal_server_error) .to_request(), @@ -227,7 +227,7 @@ assert_eq!(resp.status(), StatusCode::INTERNAL_SERVER_ERROR); let resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(PAGES.errors.unknown_error) .to_request(), diff --git a/src/mcaptcha/pages/mod.rs.html b/src/mcaptcha/pages/mod.rs.html index def1f1b8..0715cd72 100644 --- a/src/mcaptcha/pages/mod.rs.html +++ b/src/mcaptcha/pages/mod.rs.html @@ -161,7 +161,7 @@ let (data, _, signin_resp) = register_and_signin(NAME, EMAIL, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; let urls = vec![ PAGES.home, @@ -171,14 +171,14 @@ for url in urls.iter() { let resp = test::call_service( - &mut app, + &app, test::TestRequest::get().uri(url).to_request(), ) .await; assert_eq!(resp.status(), StatusCode::FOUND); let authenticated_resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(url) .cookie(cookies.clone()) @@ -194,12 +194,12 @@ #[actix_rt::test] async fn public_pages_tempaltes_work() { - let mut app = test::init_service(App::new().configure(services)).await; + let app = test::init_service(App::new().configure(services)).await; let urls = vec![PAGES.auth.login, PAGES.auth.join]; for url in urls.iter() { let resp = test::call_service( - &mut app, + &app, test::TestRequest::get().uri(url).to_request(), ) .await; diff --git a/src/mcaptcha/pages/panel/sitekey/list.rs.html b/src/mcaptcha/pages/panel/sitekey/list.rs.html index 3f46447b..21f6ae29 100644 --- a/src/mcaptcha/pages/panel/sitekey/list.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/list.rs.html @@ -208,10 +208,10 @@ let (data, _, signin_resp, key) = add_levels_util(NAME, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; let list_sitekey_resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(PAGES.panel.sitekey.list) .cookie(cookies.clone()) diff --git a/src/mcaptcha/pages/panel/sitekey/view.rs.html b/src/mcaptcha/pages/panel/sitekey/view.rs.html index d397ba3d..231b2a34 100644 --- a/src/mcaptcha/pages/panel/sitekey/view.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/view.rs.html @@ -278,12 +278,12 @@ let (data, _, signin_resp, key) = add_levels_util(NAME, PASSWORD).await; let cookies = get_cookie!(signin_resp); - let mut app = get_app!(data).await; + let app = get_app!(data).await; let url = format!("/sitekey/{}/view", &key.key); let list_sitekey_resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(&url) .cookie(cookies.clone()) diff --git a/src/mcaptcha/static_assets/static_files.rs.html b/src/mcaptcha/static_assets/static_files.rs.html index 90059505..d57eab52 100644 --- a/src/mcaptcha/static_assets/static_files.rs.html +++ b/src/mcaptcha/static_assets/static_files.rs.html @@ -252,17 +252,17 @@ #[actix_rt::test] async fn static_assets_work() { - let mut app = get_app!().await; + let app = get_app!().await; let resp = test::call_service( - &mut app, + &app, test::TestRequest::get().uri(*crate::JS).to_request(), ) .await; assert_eq!(resp.status(), StatusCode::OK); let resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(*crate::VERIFICATIN_WIDGET_JS) .to_request(), @@ -271,7 +271,7 @@ assert_eq!(resp.status(), StatusCode::OK); let resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri(*crate::VERIFICATIN_WIDGET_CSS) .to_request(), @@ -280,7 +280,7 @@ assert_eq!(resp.status(), StatusCode::OK); let resp = test::call_service( - &mut app, + &app, test::TestRequest::get() .uri( crate::FILES @@ -297,11 +297,11 @@ async fn favicons_work() { assert!(Favicons::get("favicon.ico").is_some()); - //let mut app = test::init_service(App::new().configure(services)).await; - let mut app = get_app!().await; + //let app = test::init_service(App::new().configure(services)).await; + let app = get_app!().await; let resp = test::call_service( - &mut app, + &app, test::TestRequest::get().uri("/favicon.ico").to_request(), ) .await; diff --git a/src/mcaptcha/widget/mod.rs.html b/src/mcaptcha/widget/mod.rs.html index 5e19c2c1..40a10487 100644 --- a/src/mcaptcha/widget/mod.rs.html +++ b/src/mcaptcha/widget/mod.rs.html @@ -160,7 +160,7 @@ #[actix_rt::test] async fn captcha_widget_route_works() { - let mut app = get_app!().await; + let app = get_app!().await; get_works!(app, crate::WIDGET_ROUTES.verification_widget); } } diff --git a/src/mcaptcha_browser/lib.rs.html b/src/mcaptcha_browser/lib.rs.html index c6ee676a..d52cd08f 100644 --- a/src/mcaptcha_browser/lib.rs.html +++ b/src/mcaptcha_browser/lib.rs.html @@ -152,9 +152,6 @@ 149 150 151 -152 -153 -154/* * mCaptcha is a PoW based DoS protection software. @@ -186,35 +183,33 @@ //! //! generate proof-of-work //! ```rust -//! fn main() { -//! use mcaptcha_browser::*; -//! use pow_sha256::*; +//! use mcaptcha_browser::*; +//! use pow_sha256::*; //! //! -//! // salt using which PoW should be computed -//! const SALT: &str = "yrandomsaltisnotlongenoug"; -//! // one-time phrase over which PoW should be computed -//! const PHRASE: &str = "ironmansucks"; -//! // and the difficulty factor -//! const DIFFICULTY: u32 = 1000; +//! // salt using which PoW should be computed +//! const SALT: &str = "yrandomsaltisnotlongenoug"; +//! // one-time phrase over which PoW should be computed +//! const PHRASE: &str = "ironmansucks"; +//! // and the difficulty factor +//! const DIFFICULTY: u32 = 1000; //! -//! // currently gen_pow() returns a JSON formated string to better communicate -//! // with JavaScript. See [PoW<T>][pow_sha256::PoW] for schema -//! let serialised_work = gen_pow(SALT.into(), PHRASE.into(), DIFFICULTY); +//! // currently gen_pow() returns a JSON formated string to better communicate +//! // with JavaScript. See [PoW<T>][pow_sha256::PoW] for schema +//! let serialised_work = gen_pow(SALT.into(), PHRASE.into(), DIFFICULTY); //! //! -//! let work: Work = serde_json::from_str(&serialised_work).unwrap(); +//! let work: Work = serde_json::from_str(&serialised_work).unwrap(); //! -//! let work = PoWBuilder::default() -//! .result(work.result) -//! .nonce(work.nonce) -//! .build() -//! .unwrap(); +//! let work = PoWBuilder::default() +//! .result(work.result) +//! .nonce(work.nonce) +//! .build() +//! .unwrap(); //! -//! let config = ConfigBuilder::default().salt(SALT.into()).build().unwrap(); -//! assert!(config.is_valid_proof(&work, &PHRASE.to_string())); -//! assert!(config.is_sufficient_difficulty(&work, DIFFICULTY)); -//! } +//! let config = ConfigBuilder::default().salt(SALT.into()).build().unwrap(); +//! assert!(config.is_valid_proof(&work, &PHRASE.to_string())); +//! assert!(config.is_sufficient_difficulty(&work, DIFFICULTY)); //! ``` use serde::{Deserialize, Serialize}; @@ -282,8 +277,7 @@ let work = config.prove_work(&phrase, difficulty_factor).unwrap(); let work: Work = work.into(); - let payload = serde_json::to_string(&work).unwrap(); - payload + serde_json::to_string(&work).unwrap() } #[cfg(test)]