diff --git a/COPYRIGHT.txt b/COPYRIGHT.txt index c2629a83..34e48134 100644 --- a/COPYRIGHT.txt +++ b/COPYRIGHT.txt @@ -2,8 +2,7 @@ These documentation pages include resources by third parties. This copyright file applies only to those resources. The following third party resources are included, and carry their own copyright notices and license terms: -* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2, - FiraSans-Regular.woff, FiraSans-Medium.woff): +* Fira Sans (FiraSans-Regular.woff2, FiraSans-Medium.woff2): Copyright (c) 2014, Mozilla Foundation https://mozilla.org/ with Reserved Font Name Fira Sans. @@ -25,9 +24,7 @@ included, and carry their own copyright notices and license terms: Licensed under the MIT license (see LICENSE-MIT.txt). * Source Code Pro (SourceCodePro-Regular.ttf.woff2, - SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2, - SourceCodePro-Regular.ttf.woff, SourceCodePro-Semibold.ttf.woff, - SourceCodePro-It.ttf.woff): + SourceCodePro-Semibold.ttf.woff2, SourceCodePro-It.ttf.woff2): Copyright 2010, 2012 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark @@ -37,8 +34,7 @@ included, and carry their own copyright notices and license terms: See SourceCodePro-LICENSE.txt. * Source Serif 4 (SourceSerif4-Regular.ttf.woff2, SourceSerif4-Bold.ttf.woff2, - SourceSerif4-It.ttf.woff2, SourceSerif4-Regular.ttf.woff, - SourceSerif4-Bold.ttf.woff, SourceSerif4-It.ttf.woff): + SourceSerif4-It.ttf.woff2): Copyright 2014-2021 Adobe (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe in the United diff --git a/FiraSans-Medium.woff b/FiraSans-Medium.woff deleted file mode 100644 index 7d742c5f..00000000 Binary files a/FiraSans-Medium.woff and /dev/null differ diff --git a/FiraSans-Regular.woff b/FiraSans-Regular.woff deleted file mode 100644 index d8e0363f..00000000 Binary files a/FiraSans-Regular.woff and /dev/null differ diff --git a/NanumBarunGothic.ttf.woff b/NanumBarunGothic.ttf.woff deleted file mode 100644 index fb063e8f..00000000 Binary files a/NanumBarunGothic.ttf.woff and /dev/null differ diff --git a/SourceCodePro-It.ttf.woff b/SourceCodePro-It.ttf.woff deleted file mode 100644 index 8d68f2fe..00000000 Binary files a/SourceCodePro-It.ttf.woff and /dev/null differ diff --git a/SourceCodePro-Regular.ttf.woff b/SourceCodePro-Regular.ttf.woff deleted file mode 100644 index 7be076e1..00000000 Binary files a/SourceCodePro-Regular.ttf.woff and /dev/null differ diff --git a/SourceCodePro-Semibold.ttf.woff b/SourceCodePro-Semibold.ttf.woff deleted file mode 100644 index 61bc67b8..00000000 Binary files a/SourceCodePro-Semibold.ttf.woff and /dev/null differ diff --git a/SourceSerif4-Bold.ttf.woff b/SourceSerif4-Bold.ttf.woff deleted file mode 100644 index 8ad41888..00000000 Binary files a/SourceSerif4-Bold.ttf.woff and /dev/null differ diff --git a/SourceSerif4-It.ttf.woff b/SourceSerif4-It.ttf.woff deleted file mode 100644 index 2a34b5c4..00000000 Binary files a/SourceSerif4-It.ttf.woff and /dev/null differ diff --git a/SourceSerif4-Regular.ttf.woff b/SourceSerif4-Regular.ttf.woff deleted file mode 100644 index 45a5521a..00000000 Binary files a/SourceSerif4-Regular.ttf.woff and /dev/null differ diff --git a/ayu.css b/ayu.css index 50d893e2..6ef5039f 100644 --- a/ayu.css +++ b/ayu.css @@ -1 +1 @@ - body{background-color:#0f1419;color:#c5c5c5;}h1,h2,h3,h4{color:white;}h1.fqn{border-bottom-color:#5c6773;}h1.fqn a{color:#fff;}h2,h3,h4{border-bottom-color:#5c6773;}h4{border:none;}.in-band{background-color:#0f1419;}.invisible{background:rgba(0,0,0,0);}.docblock code{color:#ffb454;}.code-header{color:#e6e1cf;}.docblock pre>code,pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}.docblock code,.docblock-short code{background-color:#191f26;}pre,.rustdoc.source .example-wrap{color:#e6e1cf;background-color:#191f26;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#14191f;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);}*{scrollbar-color:#5c6773 #24292f;}.sidebar{scrollbar-color:#5c6773 #24292f;}::-webkit-scrollbar-track{background-color:transparent;}::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar::-webkit-scrollbar-track{background-color:transparent;}.sidebar::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar .current,.sidebar a:hover{background-color:transparent;color:#ffb44c;}.source .sidebar{background-color:#14191f;}.sidebar-elems .location{color:#ff7733;}.line-numbers span{color:#5c6773;}.line-numbers .line-highlighted{color:#708090;background-color:rgba(255,236,164,0.06);padding-right:4px;border-right:1px solid #ffb44c;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#5c6773;}.docblock table td,.docblock table th{border-color:#5c6773;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#c5c5c5;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#000 !important;background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.content .item-info::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ffa0a5;}.content span.union,.content a.union{color:#ffa0a5;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#39AFD7;}.content span.primitive,.content a.primitive{color:#ffa0a5;}.content span.traitalias,.content a.traitalias{color:#39AFD7;}.content span.keyword,.content a.keyword{color:#39AFD7;}.content span.externcrate,.content span.mod,.content a.mod{color:#39AFD7;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#ffa0a5;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#39AFD7;}.content span.type,.content a.type,.block a.current.type{color:#39AFD7;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#39AFD7;}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod,.content .fnname{color:#fdd687;}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:#a37acc;}.sidebar a{color:#53b1db;}.sidebar a.current.type{color:#53b1db;}.sidebar a.current.associatedtype{color:#53b1db;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#39AFD7;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#c5c5c5;}.sidebar h2 a,.sidebar h3 a{color:white;}.search-results a{color:#0096cf;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search,.search-input{background-color:#141920;border-color:#424c57;color:#c5c5c5;}.search-input{color:#ffffff;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable,.stab.deprecated,.stab.portability{color:#c5c5c5;background:#314559 !important;border-style:none !important;border-radius:4px;padding:3px 6px 3px 6px;}.stab.portability>code{color:#e6e1cf;background:none;}#help>div{background:#14191f;box-shadow:0px 6px 20px 0px black;border:none;border-radius:4px;}#help span.bottom,#help span.top{border-color:#5c6773;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}.line-numbers :target{background-color:transparent;}pre.rust .number,pre.rust .string{color:#b8cc52;}pre.rust .kw,pre.rust .kw-2,pre.rust .prelude-ty,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .op,pre.rust .lifetime{color:#ff7733;}pre.rust .macro,pre.rust .macro-nonterminal{color:#a37acc;}pre.rust .question-mark{color:#ff9011;}pre.rust .self{color:#36a3d9;font-style:italic;}pre.rust .attribute{color:#e6e1cf;}pre.rust .attribute .ident,pre.rust .attribute .op{color:#e6e1cf;}.example-wrap>pre.line-number{color:#5c67736e;border:none;}a.test-arrow{font-size:100%;color:#788797;border-radius:4px;background-color:rgba(57,175,215,0.09);}a.test-arrow:hover{background-color:rgba(57,175,215,0.368);color:#c5c5c5;}.toggle-label,.code-attribute{color:#999;}:target{background:rgba(255,236,164,0.06);border-right:3px solid rgba(255,180,76,0.85);}pre.compile_fail{border-left:2px solid rgba(255,0,0,.4);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.4);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#39AFD7;}.tooltip::after{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip::before{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}.notable-traits-tooltiptext .notable{border-bottom-color:#5c6773;}#titles>button.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>button:not(.selected){background-color:transparent !important;border:none;}#titles>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>button>div.count{color:#888;}.search-input:focus{}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>button:hover,#titles>button.selected{}.content span.typedef,.content a.typedef,.block a.current.typedef{}.content span.union,.content a.union,.block a.current.union{}pre.rust .lifetime{}.stab.unstable{}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){}.content span.enum,.content a.enum,.block a.current.enum{}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{}.content span.keyword,.content a.keyword,.block a.current.keyword{}pre.rust .comment{}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{}pre.rust .kw{}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{}pre.rust .doccomment{}.stab.deprecated{}.content a.attr,.content a.derive,.content a.macro{}.stab.portability{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}.search-results a:focus span{}a.result-trait:focus{}a.result-traitalias:focus{}a.result-mod:focus,a.result-externcrate:focus{}a.result-mod:focus{}a.result-externcrate:focus{}a.result-enum:focus{}a.result-struct:focus{}a.result-union:focus{}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{}a.result-type:focus{}a.result-associatedtype:focus{}a.result-foreigntype:focus{}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{}a.result-constant:focus,a.result-static:focus{}a.result-primitive:focus{}a.result-keyword:focus{}.sidebar a.current.enum{}.sidebar a.current.struct{}.sidebar a.current.foreigntype{}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{}.sidebar a.current.union{}.sidebar a.current.constant .sidebar a.current.static{}.sidebar a.current.primitive{}.sidebar a.current.externcrate .sidebar a.current.mod{}.sidebar a.current.trait{}.sidebar a.current.traitalias{}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{}.sidebar a.current.keyword{}@media (max-width:700px){.sidebar-menu{background-color:#14191f;border-bottom-color:#5c6773;border-right-color:#5c6773;}.sidebar-elems{background-color:#14191f;border-right-color:#5c6773;}#sidebar-filler{background-color:#14191f;border-bottom-color:#5c6773;}}kbd{color:#c5c5c5;background-color:#314559;border-color:#5c6773;border-bottom-color:#5c6773;box-shadow:inset 0 -1px 0 #5c6773;}#theme-picker,#settings-menu,#help-button{border-color:#5c6773;background-color:#0f1419;color:#fff;}#theme-picker>img,#settings-menu>img{filter:invert(100);}#copy-path{color:#fff;}#copy-path>img{filter:invert(70%);}#copy-path:hover>img{filter:invert(100%);}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#e0e0e0;}#theme-choices{border-color:#5c6773;background-color:#0f1419;}#theme-choices>button:not(:first-child){border-top-color:#5c6773;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(110,110,110,0.33);}@media (max-width:700px){#theme-picker{background:#0f1419;}}.search-results .result-name span.alias{color:#c5c5c5;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#14191f;}#sidebar-toggle:hover{background-color:rgba(70,70,70,0.33);}#source-sidebar{background-color:#14191f;}#source-sidebar>.title{color:#fff;border-bottom-color:#5c6773;}div.files>a:hover,div.name:hover{background-color:#14191f;color:#ffb44c;}div.files>.selected{background-color:#14191f;color:#ffb44c;}.setting-line>.title{border-bottom-color:#5c6773;}input:checked+.slider{background-color:#ffb454 !important;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(15,20,25,1),rgba(15,20,25,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(15,20,25,1),rgba(15,20,25,0));}.toggle-line-inner{background:#616161;}.toggle-line:hover .toggle-line-inner{background:#898989;} \ No newline at end of file + body{background-color:#0f1419;color:#c5c5c5;}h1,h2,h3,h4{color:white;}h1.fqn{border-bottom-color:#5c6773;}h1.fqn a{color:#fff;}h2,h3,h4{border-bottom-color:#5c6773;}h4{border:none;}.in-band{background-color:#0f1419;}.invisible{background:rgba(0,0,0,0);}.docblock code{color:#ffb454;}.code-header{color:#e6e1cf;}.docblock pre>code,pre>code{color:#e6e1cf;}span code{color:#e6e1cf;}.docblock a>code{color:#39AFD7 !important;}.docblock code,.docblock-short code{background-color:#191f26;}pre,.rustdoc.source .example-wrap{color:#e6e1cf;background-color:#191f26;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#14191f;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff);}*{scrollbar-color:#5c6773 #24292f;}.sidebar{scrollbar-color:#5c6773 #24292f;}::-webkit-scrollbar-track{background-color:transparent;}::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar::-webkit-scrollbar-track{background-color:transparent;}.sidebar::-webkit-scrollbar-thumb{background-color:#5c6773;}.sidebar .current,.sidebar a:hover{background-color:transparent;color:#ffb44c;}.source .sidebar{background-color:#14191f;}.sidebar-elems .location{color:#ff7733;}.line-numbers span{color:#5c6773;}.line-numbers .line-highlighted{color:#708090;background-color:rgba(255,236,164,0.06);padding-right:4px;border-right:1px solid #ffb44c;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#5c6773;}.docblock table td,.docblock table th{border-color:#5c6773;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#c5c5c5;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#000 !important;background-color:#c6afb3;}.search-results a{color:#0096cf;}.search-results a div.desc{color:#c5c5c5;}.content .item-info::before{color:#ccc;}.content span.foreigntype,.content a.foreigntype{color:#ffa0a5;}.content span.union,.content a.union{color:#ffa0a5;}.content span.constant,.content a.constant,.content span.static,.content a.static{color:#39AFD7;}.content span.primitive,.content a.primitive{color:#ffa0a5;}.content span.traitalias,.content a.traitalias{color:#39AFD7;}.content span.keyword,.content a.keyword{color:#39AFD7;}.content span.externcrate,.content span.mod,.content a.mod{color:#39AFD7;}.content span.struct,.content a.struct{color:#ffa0a5;}.content span.enum,.content a.enum{color:#ffa0a5;}.content span.trait,.content a.trait{color:#39AFD7;}.content span.type,.content a.type{color:#39AFD7;}.content span.type,.content a.type,.block a.current.type{color:#39AFD7;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#39AFD7;}.content span.fn,.content a.fn,.content span.method,.content a.method,.content span.tymethod,.content a.tymethod,.content .fnname{color:#fdd687;}.content span.attr,.content a.attr,.content span.derive,.content a.derive,.content span.macro,.content a.macro{color:#a37acc;}.sidebar a{color:#53b1db;}.sidebar a.current.type{color:#53b1db;}.sidebar a.current.associatedtype{color:#53b1db;}pre.rust .comment{color:#788797;}pre.rust .doccomment{color:#a1ac88;}nav.main .current{border-top-color:#5c6773;border-bottom-color:#5c6773;}nav.main .separator{border:1px solid #5c6773;}a{color:#39AFD7;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#c5c5c5;}.sidebar h2 a,.sidebar h3 a{color:white;}.search-results a{color:#0096cf;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search,.search-input{background-color:#141920;border-color:#424c57;color:#c5c5c5;}.search-input{color:#ffffff;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable,.stab.deprecated,.stab.portability{color:#c5c5c5;background:#314559 !important;border-style:none !important;border-radius:4px;padding:3px 6px 3px 6px;}.stab.portability>code{color:#e6e1cf;background:none;}#help>div{background:#14191f;box-shadow:0px 6px 20px 0px black;border:none;border-radius:4px;}#help span.bottom,#help span.top{border-color:#5c6773;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#788797;}.line-numbers :target{background-color:transparent;}pre.rust .number,pre.rust .string{color:#b8cc52;}pre.rust .kw,pre.rust .kw-2,pre.rust .prelude-ty,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .op,pre.rust .lifetime{color:#ff7733;}pre.rust .macro,pre.rust .macro-nonterminal{color:#a37acc;}pre.rust .question-mark{color:#ff9011;}pre.rust .self{color:#36a3d9;font-style:italic;}pre.rust .attribute{color:#e6e1cf;}pre.rust .attribute .ident,pre.rust .attribute .op{color:#e6e1cf;}.example-wrap>pre.line-number{color:#5c67736e;border:none;}a.test-arrow{font-size:100%;color:#788797;border-radius:4px;background-color:rgba(57,175,215,0.09);}a.test-arrow:hover{background-color:rgba(57,175,215,0.368);color:#c5c5c5;}.toggle-label,.code-attribute{color:#999;}:target{background:rgba(255,236,164,0.06);border-right:3px solid rgba(255,180,76,0.85);}pre.compile_fail{border-left:2px solid rgba(255,0,0,.4);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.4);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#39AFD7;}.tooltip::after{background-color:#314559;color:#c5c5c5;border:1px solid #5c6773;}.tooltip::before{border-color:transparent #314559 transparent transparent;}.notable-traits-tooltiptext{background-color:#314559;border-color:#5c6773;}.notable-traits-tooltiptext .notable{border-bottom-color:#5c6773;}#titles>button.selected{background-color:#141920 !important;border-bottom:1px solid #ffb44c !important;border-top:none;}#titles>button:not(.selected){background-color:transparent !important;border:none;}#titles>button:hover{border-bottom:1px solid rgba(242,151,24,0.3);}#titles>button>div.count{color:#888;}.search-input:focus{}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{}.content span.struct,.content a.struct,.block a.current.struct{}#titles>button:hover,#titles>button.selected{}.content span.typedef,.content a.typedef,.block a.current.typedef{}.content span.union,.content a.union,.block a.current.union{}pre.rust .lifetime{}.stab.unstable{}h2,h3:not(.impl):not(.method):not(.type):not(.tymethod),h4:not(.method):not(.type):not(.tymethod){}.content span.enum,.content a.enum,.block a.current.enum{}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{}.content span.keyword,.content a.keyword,.block a.current.keyword{}pre.rust .comment{}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{}pre.rust .kw{}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{}pre.rust .doccomment{}.stab.deprecated{}.content a.attr,.content a.derive,.content a.macro{}.stab.portability{}.content span.primitive,.content a.primitive,.block a.current.primitive{}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{}pre.rust .kw-2,pre.rust .prelude-ty{}.content span.trait,.content a.trait,.block a.current.trait{}.search-results a:focus span{}a.result-trait:focus{}a.result-traitalias:focus{}a.result-mod:focus,a.result-externcrate:focus{}a.result-mod:focus{}a.result-externcrate:focus{}a.result-enum:focus{}a.result-struct:focus{}a.result-union:focus{}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{}a.result-type:focus{}a.result-associatedtype:focus{}a.result-foreigntype:focus{}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{}a.result-constant:focus,a.result-static:focus{}a.result-primitive:focus{}a.result-keyword:focus{}.sidebar a.current.enum{}.sidebar a.current.struct{}.sidebar a.current.foreigntype{}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{}.sidebar a.current.union{}.sidebar a.current.constant .sidebar a.current.static{}.sidebar a.current.primitive{}.sidebar a.current.externcrate .sidebar a.current.mod{}.sidebar a.current.trait{}.sidebar a.current.traitalias{}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{}.sidebar a.current.keyword{}@media (max-width:700px){.sidebar-menu{background-color:#14191f;border-bottom-color:#5c6773;border-right-color:#5c6773;}.sidebar-elems{background-color:#14191f;border-right-color:#5c6773;}#sidebar-filler{background-color:#14191f;border-bottom-color:#5c6773;}}kbd{color:#c5c5c5;background-color:#314559;border-color:#5c6773;border-bottom-color:#5c6773;box-shadow:inset 0 -1px 0 #5c6773;}#theme-picker,#settings-menu,#help-button{border-color:#5c6773;background-color:#0f1419;color:#fff;}#theme-picker>img,#settings-menu>img{filter:invert(100);}#copy-path{color:#fff;}#copy-path>img{filter:invert(70%);}#copy-path:hover>img{filter:invert(100%);}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#e0e0e0;}#theme-choices{border-color:#5c6773;background-color:#0f1419;}#theme-choices>button:not(:first-child){border-top-color:#5c6773;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:rgba(110,110,110,0.33);}@media (max-width:700px){#theme-picker{background:#0f1419;}}.search-results .result-name span.alias{color:#c5c5c5;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#14191f;}#sidebar-toggle:hover{background-color:rgba(70,70,70,0.33);}#source-sidebar{background-color:#14191f;}#source-sidebar>.title{color:#fff;border-bottom-color:#5c6773;}div.files>a:hover,div.name:hover{background-color:#14191f;color:#ffb44c;}div.files>.selected{background-color:#14191f;color:#ffb44c;}.setting-line>.title{border-bottom-color:#5c6773;}input:checked+.slider{background-color:#ffb454 !important;}.scraped-example-list .scrape-help{border-color:#aaa;color:#eee;}.scraped-example-list .scrape-help:hover{border-color:white;color:white;}.more-examples-toggle summary,.more-examples-toggle .hide-more{color:#999;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(15,20,25,1),rgba(15,20,25,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(15,20,25,1),rgba(15,20,25,0));}.toggle-line-inner{background:#999;}.toggle-line:hover .toggle-line-inner{background:#c5c5c5;} \ No newline at end of file diff --git a/dark.css b/dark.css index a31f453f..34ae439c 100644 --- a/dark.css +++ b/dark.css @@ -1 +1 @@ -body{background-color:#353535;color:#ddd;}h1,h2,h3,h4{color:#ddd;}h1.fqn{border-bottom-color:#d2d2d2;}h2,h3,h4{border-bottom-color:#d2d2d2;}.in-band{background-color:#353535;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#2A2A2A;}pre,.rustdoc.source .example-wrap{background-color:#2A2A2A;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#505050;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff)}*{scrollbar-color:rgb(64,65,67) #717171;}.sidebar{scrollbar-color:rgba(32,34,37,.6) #5a5a5a;}::-webkit-scrollbar-track{background-color:#717171;}::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar::-webkit-scrollbar-track{background-color:#717171;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar .current,.sidebar a:hover{background:#444;}.source .sidebar{background-color:#565656;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#DDD;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#ddd;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#eee !important;background-color:#616161;}.search-results a:focus span{color:#eee !important;}a.result-trait:focus{background-color:#013191;}a.result-traitalias:focus{background-color:#013191;}a.result-mod:focus,a.result-externcrate:focus{background-color:#884719;}a.result-enum:focus{background-color:#194e9f;}a.result-struct:focus{background-color:#194e9f;}a.result-union:focus{background-color:#194e9f;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#4950ed;}a.result-type:focus{background-color:#194e9f;}a.result-associatedtype:focus{background-color:#884719;}a.result-foreigntype:focus{background-color:#194e9f;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#217d1c;}a.result-constant:focus,a.result-static:focus{background-color:#884719;}a.result-primitive:focus{background-color:#194e9f;}a.result-keyword:focus{background-color:#884719;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#2dbfb8;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#2dbfb8;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#D2991D;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#2dbfb8;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#09bd00;}.content span.union,.content a.union,.block a.current.union{color:#2dbfb8;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#D2991D;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2dbfb8;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#D2991D;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b78cf2;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#2BAB63;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#D2991D;}.sidebar a{color:#fdbf35;}.sidebar a.current.enum{color:#12ece2;}.sidebar a.current.struct{color:#12ece2;}.sidebar a.current.type{color:#12ece2;}.sidebar a.current.associatedtype{color:#fdbf35;}.sidebar a.current.foreigntype{color:#12ece2;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#0be900;}.sidebar a.current.union{color:#12ece2;}.sidebar a.current.constant .sidebar a.current.static{color:#fdbf35;}.sidebar a.current.primitive{color:#12ece2;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#fdbf35;}.sidebar a.current.trait{color:#cca7ff;}.sidebar a.current.traitalias{color:#cca7ff;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#32d479;}.sidebar a.current.keyword{color:#fdbf35;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#D2991D;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#ddd;}.search-results a{color:#ddd;}a.test-arrow{color:#dedede;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search,.search-input{color:#111;background-color:#f0f0f0;border-color:#000;}.search-input{border-color:#e0e0e0;}.search-input:focus{border-color:#008dfd;}.module-item .stab,.import-item .stab{color:#ddd;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;color:#2f2f2f;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability>code{background:none;}#help>div{background:#4d4d4d;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}#help dt{border-color:#bfbfbf;background:rgba(0,0,0,0);}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#ddd;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#ab8ac1;}pre.rust .kw-2,pre.rust .prelude-ty{color:#769acb;}pre.rust .number,pre.rust .string{color:#83a300;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#ee6868;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#d97f26;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#4a4949;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background-color:#494a3d;border-right:3px solid #bb7410;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.8);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.8);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.8);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.8);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;border-color:#000;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}.notable-traits-tooltiptext .notable{border-bottom-color:#d2d2d2;}#titles>button:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>button:hover,#titles>button.selected{border-top-color:#0089ff;background-color:#353535;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#505050;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#505050;border-right-color:#000;}#sidebar-filler{background-color:#505050;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background:#f0f0f0;color:#000;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#ffb900;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(65%);}#theme-choices{border-color:#e0e0e0;background-color:#353535;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#4e4e4e;}@media (max-width:700px){#theme-picker{background:#f0f0f0;}}.search-results .result-name span.alias{color:#fff;}.search-results .result-name span.grey{color:#ccc;}#sidebar-toggle{background-color:#565656;}#sidebar-toggle:hover{background-color:#676767;}#source-sidebar{background-color:#565656;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#444;}div.files>.selected{background-color:#333;}.setting-line>.title{border-bottom-color:#ddd;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(53,53,53,1),rgba(53,53,53,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(53,53,53,1),rgba(53,53,53,0));}.toggle-line-inner{background:#616161;}.toggle-line:hover .toggle-line-inner{background:#898989;} \ No newline at end of file +body{background-color:#353535;color:#ddd;}h1,h2,h3,h4{color:#ddd;}h1.fqn{border-bottom-color:#d2d2d2;}h2,h3,h4{border-bottom-color:#d2d2d2;}.in-band{background-color:#353535;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#2A2A2A;}pre,.rustdoc.source .example-wrap{background-color:#2A2A2A;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#505050;}.rust-logo{filter:drop-shadow(1px 0 0px #fff) drop-shadow(0 1px 0 #fff) drop-shadow(-1px 0 0 #fff) drop-shadow(0 -1px 0 #fff)}*{scrollbar-color:rgb(64,65,67) #717171;}.sidebar{scrollbar-color:rgba(32,34,37,.6) #5a5a5a;}::-webkit-scrollbar-track{background-color:#717171;}::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar::-webkit-scrollbar-track{background-color:#717171;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(32,34,37,.6);}.sidebar .current,.sidebar a:hover{background:#444;}.source .sidebar{background-color:#565656;}.line-numbers span{color:#3B91E2;}.line-numbers .line-highlighted{background-color:#0a042f !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#DDD;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#ddd;}.search-results a:hover{background-color:#777;}.search-results a:focus{color:#eee !important;background-color:#616161;}.search-results a:focus span{color:#eee !important;}a.result-trait:focus{background-color:#013191;}a.result-traitalias:focus{background-color:#013191;}a.result-mod:focus,a.result-externcrate:focus{background-color:#884719;}a.result-enum:focus{background-color:#194e9f;}a.result-struct:focus{background-color:#194e9f;}a.result-union:focus{background-color:#194e9f;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#4950ed;}a.result-type:focus{background-color:#194e9f;}a.result-associatedtype:focus{background-color:#884719;}a.result-foreigntype:focus{background-color:#194e9f;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#217d1c;}a.result-constant:focus,a.result-static:focus{background-color:#884719;}a.result-primitive:focus{background-color:#194e9f;}a.result-keyword:focus{background-color:#884719;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#2dbfb8;}.content span.struct,.content a.struct,.block a.current.struct{color:#2dbfb8;}.content span.type,.content a.type,.block a.current.type{color:#2dbfb8;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#D2991D;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#2dbfb8;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#09bd00;}.content span.union,.content a.union,.block a.current.union{color:#2dbfb8;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#D2991D;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#2dbfb8;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#D2991D;}.content span.trait,.content a.trait,.block a.current.trait{color:#b78cf2;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#b78cf2;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#2BAB63;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#D2991D;}.sidebar a{color:#fdbf35;}.sidebar a.current.enum{color:#12ece2;}.sidebar a.current.struct{color:#12ece2;}.sidebar a.current.type{color:#12ece2;}.sidebar a.current.associatedtype{color:#fdbf35;}.sidebar a.current.foreigntype{color:#12ece2;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#0be900;}.sidebar a.current.union{color:#12ece2;}.sidebar a.current.constant .sidebar a.current.static{color:#fdbf35;}.sidebar a.current.primitive{color:#12ece2;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#fdbf35;}.sidebar a.current.trait{color:#cca7ff;}.sidebar a.current.traitalias{color:#cca7ff;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#32d479;}.sidebar a.current.keyword{color:#fdbf35;}pre.rust .comment{color:#8d8d8b;}pre.rust .doccomment{color:#8ca375;}nav.main .current{border-top-color:#eee;border-bottom-color:#eee;}nav.main .separator{border-color:#eee;}a{color:#D2991D;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#ddd;}.search-results a{color:#ddd;}a.test-arrow{color:#dedede;}body.source .example-wrap pre.rust a{background:#333;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}details.rustdoc-toggle>summary::before,details.undocumented>summary::before{filter:invert(100%);}#crate-search,.search-input{color:#111;background-color:#f0f0f0;border-color:#000;}.search-input{border-color:#e0e0e0;}.search-input:focus{border-color:#008dfd;}.module-item .stab,.import-item .stab{color:#ddd;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;color:#2f2f2f;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;color:#2f2f2f;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;color:#2f2f2f;}.stab.portability>code{background:none;}#help>div{background:#4d4d4d;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}#help dt{border-color:#bfbfbf;background:rgba(0,0,0,0);}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:#ddd;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#ab8ac1;}pre.rust .kw-2,pre.rust .prelude-ty{color:#769acb;}pre.rust .number,pre.rust .string{color:#83a300;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#ee6868;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#d97f26;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#4a4949;}a.test-arrow{background-color:rgba(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background-color:#494a3d;border-right:3px solid #bb7410;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.8);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.8);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.8);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.8);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#0089ff;}.tooltip::after{background-color:#000;color:#fff;border-color:#000;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#111;border-color:#777;}.notable-traits-tooltiptext .notable{border-bottom-color:#d2d2d2;}#titles>button:not(.selected){background-color:#252525;border-top-color:#252525;}#titles>button:hover,#titles>button.selected{border-top-color:#0089ff;background-color:#353535;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#505050;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#505050;border-right-color:#000;}#sidebar-filler{background-color:#505050;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background:#f0f0f0;color:#000;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#ffb900;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(65%);}#theme-choices{border-color:#e0e0e0;background-color:#353535;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#4e4e4e;}@media (max-width:700px){#theme-picker{background:#f0f0f0;}}.search-results .result-name span.alias{color:#fff;}.search-results .result-name span.grey{color:#ccc;}#sidebar-toggle{background-color:#565656;}#sidebar-toggle:hover{background-color:#676767;}#source-sidebar{background-color:#565656;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#444;}div.files>.selected{background-color:#333;}.setting-line>.title{border-bottom-color:#ddd;}.scraped-example-list .scrape-help{border-color:#aaa;color:#eee;}.scraped-example-list .scrape-help:hover{border-color:white;color:white;}.more-examples-toggle summary,.more-examples-toggle .hide-more{color:#999;}.scraped-example .example-wrap .rust span.highlight{background:rgb(91,59,1);}.scraped-example .example-wrap .rust span.highlight.focus{background:rgb(124,75,15);}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(53,53,53,1),rgba(53,53,53,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(53,53,53,1),rgba(53,53,53,0));}.toggle-line-inner{background:#999;}.toggle-line:hover .toggle-line-inner{background:#c5c5c5;} \ No newline at end of file diff --git a/db_core/all.html b/db_core/all.html index 387959f7..daec46d6 100644 --- a/db_core/all.html +++ b/db_core/all.html @@ -3,5 +3,5 @@

List of all items

Structs

Enums

Traits

Attribute Macros

Functions

Typedefs

+

Crate db_core

List of all items

Structs

Enums

Traits

Attribute Macros

Functions

Typedefs

\ No newline at end of file diff --git a/db_core/dev/attr.async_trait.html b/db_core/dev/attr.async_trait.html index bf4558a4..439b3131 100644 --- a/db_core/dev/attr.async_trait.html +++ b/db_core/dev/attr.async_trait.html @@ -4,5 +4,5 @@
-

Attribute Macro db_core::dev::async_trait

[]
#[async_trait]
+

Attribute Macro db_core::dev::async_trait

[]
#[async_trait]
\ No newline at end of file diff --git a/db_core/dev/index.html b/db_core/dev/index.html index a33df17b..2423851f 100644 --- a/db_core/dev/index.html +++ b/db_core/dev/index.html @@ -7,5 +7,5 @@

Module db_core::dev

source · []
Expand description

useful imports for supporting a new database

Re-exports

pub use super::prelude::*;

Attribute Macros

-
+
\ No newline at end of file diff --git a/db_core/enum.Login.html b/db_core/enum.Login.html index 4198880f..776aa95f 100644 --- a/db_core/enum.Login.html +++ b/db_core/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/errors/enum.DBError.html b/db_core/errors/enum.DBError.html index bd1ea61c..7b64ea28 100644 --- a/db_core/errors/enum.DBError.html +++ b/db_core/errors/enum.DBError.html @@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/errors/index.html b/db_core/errors/index.html index a8c9f808..ec91d238 100644 --- a/db_core/errors/index.html +++ b/db_core/errors/index.html @@ -10,5 +10,5 @@

Type Definitions

Convenience type alias for grouping driver-specific errors

Generic result data structure

-
+
\ No newline at end of file diff --git a/db_core/errors/type.BoxDynError.html b/db_core/errors/type.BoxDynError.html index 62d39857..93d5490d 100644 --- a/db_core/errors/type.BoxDynError.html +++ b/db_core/errors/type.BoxDynError.html @@ -4,6 +4,6 @@
-

Type Definition db_core::errors::BoxDynError

source · []
pub type BoxDynError = Box<dyn StdError + Send + Sync + 'static>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_core::errors::BoxDynError

source · []
pub type BoxDynError = Box<dyn StdError + Send + Sync + 'static>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_core/errors/type.DBResult.html b/db_core/errors/type.DBResult.html index a410f535..8c257936 100644 --- a/db_core/errors/type.DBResult.html +++ b/db_core/errors/type.DBResult.html @@ -4,6 +4,6 @@
-

Type Definition db_core::errors::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_core::errors::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_core/index.html b/db_core/index.html index 45fa1fe8..73cb6b95 100644 --- a/db_core/index.html +++ b/db_core/index.html @@ -3,7 +3,7 @@

+

Crate db_core

Expand description

mCaptcha database operations

Traits and datastructures used in mCaptcha to interact with database.

To use an unsupported database with mCaptcha, traits present within this crate should be @@ -16,7 +16,7 @@ implemented.

connection from pool

Re-exports

-
pub use ops::GetConnection;

Modules

+
pub use ops::GetConnection;

Modules

useful imports for supporting a new database

represents all the ways a trait can fail using this crate

meta operations like migration and connecting to a database

@@ -40,5 +40,5 @@ connection from pool

Trait to clone MCDatabase

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-
+
\ No newline at end of file diff --git a/db_core/ops/index.html b/db_core/ops/index.html index bcf2af3e..5a8b92ae 100644 --- a/db_core/ops/index.html +++ b/db_core/ops/index.html @@ -10,5 +10,5 @@
DBOps

Database operations trait(migrations, pool creation and fetching connection from pool)

GetConnection

Get database connection

Migrate

database migrations

-
+
\ No newline at end of file diff --git a/db_core/ops/trait.Connect.html b/db_core/ops/trait.Connect.html index a9b7b4dd..7acf9124 100644 --- a/db_core/ops/trait.Connect.html +++ b/db_core/ops/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = DBResult<Self::Pool>> + Send + 'async_trait>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = DBResult<Self::Pool>> + Send + 'async_trait>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_core/ops/trait.DBOps.html b/db_core/ops/trait.DBOps.html index 53249cbf..79dc6415 100644 --- a/db_core/ops/trait.DBOps.html +++ b/db_core/ops/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_core/ops/trait.GetConnection.html b/db_core/ops/trait.GetConnection.html index 61eb2603..44517c60 100644 --- a/db_core/ops/trait.GetConnection.html +++ b/db_core/ops/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = DBResult<Self::Conn>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = DBResult<Self::Conn>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_core/ops/trait.Migrate.html b/db_core/ops/trait.Migrate.html index 7e0ccb48..64b3b064 100644 --- a/db_core/ops/trait.Migrate.html +++ b/db_core/ops/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_core/prelude/index.html b/db_core/prelude/index.html index f6c6d37f..c85277c9 100644 --- a/db_core/prelude/index.html +++ b/db_core/prelude/index.html @@ -6,5 +6,5 @@

Module prelude

Expand description

useful imports for users working with a supported database

Re-exports

-
pub use super::errors::*;
pub use super::ops::*;
pub use super::*;
+
pub use super::errors::*;
pub use super::ops::*;
pub use super::*;
\ No newline at end of file diff --git a/db_core/struct.AddNotification.html b/db_core/struct.AddNotification.html index 3659f137..bd7b1718 100644 --- a/db_core/struct.AddNotification.html +++ b/db_core/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.Captcha.html b/db_core/struct.Captcha.html index 6688b8a2..419b9445 100644 --- a/db_core/struct.Captcha.html +++ b/db_core/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.CreateCaptcha.html b/db_core/struct.CreateCaptcha.html index deb50aeb..b201b6f1 100644 --- a/db_core/struct.CreateCaptcha.html +++ b/db_core/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.Level.html b/db_core/struct.Level.html index 9916196e..6162dc02 100644 --- a/db_core/struct.Level.html +++ b/db_core/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.NameHash.html b/db_core/struct.NameHash.html index dbb07a97..3adbfdd5 100644 --- a/db_core/struct.NameHash.html +++ b/db_core/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.Notification.html b/db_core/struct.Notification.html index 517475c9..9eabb97c 100644 --- a/db_core/struct.Notification.html +++ b/db_core/struct.Notification.html @@ -5,48 +5,48 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.Register.html b/db_core/struct.Register.html index 321afe1d..bf8f091e 100644 --- a/db_core/struct.Register.html +++ b/db_core/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.Secret.html b/db_core/struct.Secret.html index 576c957c..4ac1c799 100644 --- a/db_core/struct.Secret.html +++ b/db_core/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.StatsUnixTimestamp.html b/db_core/struct.StatsUnixTimestamp.html index b2835e0a..37403424 100644 --- a/db_core/struct.StatsUnixTimestamp.html +++ b/db_core/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64>,
-    pub solves: Vec<i64>,
-    pub confirms: Vec<i64>,
+    pub config_fetches: Vec<i64>,
+    pub solves: Vec<i64>,
+    pub confirms: Vec<i64>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64>

times at which the configuration were fetched

-
solves: Vec<i64>

times at which the PoW was solved

-
confirms: Vec<i64>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64>

times at which the configuration were fetched

+
solves: Vec<i64>

times at which the PoW was solved

+
confirms: Vec<i64>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.TrafficPattern.html b/db_core/struct.TrafficPattern.html index 953109cd..27bc55b4 100644 --- a/db_core/struct.TrafficPattern.html +++ b/db_core/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/struct.UpdateEmail.html b/db_core/struct.UpdateEmail.html index a3b89775..0f6485ca 100644 --- a/db_core/struct.UpdateEmail.html +++ b/db_core/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_core/tests/fn.database_works.html b/db_core/tests/fn.database_works.html index a7e968dc..89d53254 100644 --- a/db_core/tests/fn.database_works.html +++ b/db_core/tests/fn.database_works.html @@ -4,6 +4,6 @@
pub async fn database_works<'a, T: MCDatabase>(
    db: &T,
    p: &Register<'a>,
    c: &CreateCaptcha<'a>,
    l: &[Level],
    tp: &TrafficPattern,
    an: &AddNotification<'a>
)
Expand description

test all database functions

-
+

Function db_core::tests::database_works

source · []
pub async fn database_works<'a, T: MCDatabase>(
    db: &T,
    p: &Register<'a>,
    c: &CreateCaptcha<'a>,
    l: &[Level],
    tp: &TrafficPattern,
    an: &AddNotification<'a>
)
Expand description

test all database functions

+
\ No newline at end of file diff --git a/db_core/tests/index.html b/db_core/tests/index.html index b5e55817..bc20bcbb 100644 --- a/db_core/tests/index.html +++ b/db_core/tests/index.html @@ -7,5 +7,5 @@

Module db_core::tests

source · []
Expand description

Test utilities

Functions

test all database functions

-
+
\ No newline at end of file diff --git a/db_core/trait.CloneSPDatabase.html b/db_core/trait.CloneSPDatabase.html index 96c4b4f4..6245599c 100644 --- a/db_core/trait.CloneSPDatabase.html +++ b/db_core/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase>;
+    fn clone_db(&self) -> Box<dyn MCDatabase>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_core/trait.MCDatabase.html b/db_core/trait.MCDatabase.html index 26e3f85d..892b07a8 100644 --- a/db_core/trait.MCDatabase.html +++ b/db_core/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_core::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Option<String>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<NameHash>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Secret>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Captcha>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Captcha>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<bool>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Level>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<i32>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<TrafficPattern>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<Notification>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<Vec<i64>>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/all.html b/db_sqlx_postgres/all.html index 28170a5a..617a97f2 100644 --- a/db_sqlx_postgres/all.html +++ b/db_sqlx_postgres/all.html @@ -3,5 +3,5 @@

List of all items

Structs

Enums

Traits

Attribute Macros

Functions

Typedefs

+

Crate db_sqlx_postgres

List of all items

Structs

Enums

Traits

Attribute Macros

Functions

Typedefs

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/attr.async_trait.html b/db_sqlx_postgres/dev/attr.async_trait.html index 64734fe8..7378ac96 100644 --- a/db_sqlx_postgres/dev/attr.async_trait.html +++ b/db_sqlx_postgres/dev/attr.async_trait.html @@ -4,5 +4,5 @@
#[async_trait]
+

Attribute Macro db_sqlx_postgres::dev::async_trait

[]
#[async_trait]
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/attr.async_trait.html b/db_sqlx_postgres/dev/dev/attr.async_trait.html index 1eaa5ed8..2df01620 100644 --- a/db_sqlx_postgres/dev/dev/attr.async_trait.html +++ b/db_sqlx_postgres/dev/dev/attr.async_trait.html @@ -4,5 +4,5 @@
#[async_trait]
+

Attribute Macro db_sqlx_postgres::dev::dev::async_trait

[]
#[async_trait]
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/enum.DBError.html b/db_sqlx_postgres/dev/dev/enum.DBError.html index 4301b80c..dd1acb09 100644 --- a/db_sqlx_postgres/dev/dev/enum.DBError.html +++ b/db_sqlx_postgres/dev/dev/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/enum.Login.html b/db_sqlx_postgres/dev/dev/enum.Login.html index 1230ec23..1f2a2afd 100644 --- a/db_sqlx_postgres/dev/dev/enum.Login.html +++ b/db_sqlx_postgres/dev/dev/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/index.html b/db_sqlx_postgres/dev/dev/index.html index 21a2a0ae..9c1ee1ed 100644 --- a/db_sqlx_postgres/dev/dev/index.html +++ b/db_sqlx_postgres/dev/dev/index.html @@ -34,5 +34,5 @@ trait.

Convenience type alias for grouping driver-specific errors

Generic result data structure

Attribute Macros

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/enum.DBError.html b/db_sqlx_postgres/dev/dev/prelude/enum.DBError.html index 632e64e0..57029db7 100644 --- a/db_sqlx_postgres/dev/dev/prelude/enum.DBError.html +++ b/db_sqlx_postgres/dev/dev/prelude/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/enum.Login.html b/db_sqlx_postgres/dev/dev/prelude/enum.Login.html index 00a1a57c..b7b6c094 100644 --- a/db_sqlx_postgres/dev/dev/prelude/enum.Login.html +++ b/db_sqlx_postgres/dev/dev/prelude/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/index.html b/db_sqlx_postgres/dev/dev/prelude/index.html index 8a29732f..1a3aecd6 100644 --- a/db_sqlx_postgres/dev/dev/prelude/index.html +++ b/db_sqlx_postgres/dev/dev/prelude/index.html @@ -31,5 +31,5 @@ trait.

Type Definitions

Convenience type alias for grouping driver-specific errors

Generic result data structure

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.AddNotification.html b/db_sqlx_postgres/dev/dev/prelude/struct.AddNotification.html index 4f0e555b..ca6fe8da 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.AddNotification.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.Captcha.html b/db_sqlx_postgres/dev/dev/prelude/struct.Captcha.html index a1e266f8..6422f38b 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.Captcha.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.CreateCaptcha.html b/db_sqlx_postgres/dev/dev/prelude/struct.CreateCaptcha.html index ca814d86..af37d7fb 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.Level.html b/db_sqlx_postgres/dev/dev/prelude/struct.Level.html index d7b6b982..8d33400e 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.Level.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.NameHash.html b/db_sqlx_postgres/dev/dev/prelude/struct.NameHash.html index 8cec30d6..eb7d9a62 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.NameHash.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.Notification.html b/db_sqlx_postgres/dev/dev/prelude/struct.Notification.html index e884fc27..9fada7d2 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.Notification.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.Notification.html @@ -5,49 +5,49 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.Register.html b/db_sqlx_postgres/dev/dev/prelude/struct.Register.html index bf30c153..a5994312 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.Register.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.Secret.html b/db_sqlx_postgres/dev/dev/prelude/struct.Secret.html index 43456794..9b63523c 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.Secret.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.StatsUnixTimestamp.html b/db_sqlx_postgres/dev/dev/prelude/struct.StatsUnixTimestamp.html index 85f2f1bb..e90dbae5 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64, Global>,
-    pub solves: Vec<i64, Global>,
-    pub confirms: Vec<i64, Global>,
+    pub config_fetches: Vec<i64, Global>,
+    pub solves: Vec<i64, Global>,
+    pub confirms: Vec<i64, Global>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

-
solves: Vec<i64, Global>

times at which the PoW was solved

-
confirms: Vec<i64, Global>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

+
solves: Vec<i64, Global>

times at which the PoW was solved

+
confirms: Vec<i64, Global>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.TrafficPattern.html b/db_sqlx_postgres/dev/dev/prelude/struct.TrafficPattern.html index f98dfbde..037bb169 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.TrafficPattern.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/struct.UpdateEmail.html b/db_sqlx_postgres/dev/dev/prelude/struct.UpdateEmail.html index bb81aa62..847fc548 100644 --- a/db_sqlx_postgres/dev/dev/prelude/struct.UpdateEmail.html +++ b/db_sqlx_postgres/dev/dev/prelude/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/trait.CloneSPDatabase.html b/db_sqlx_postgres/dev/dev/prelude/trait.CloneSPDatabase.html index 507aca7a..bc059866 100644 --- a/db_sqlx_postgres/dev/dev/prelude/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/dev/dev/prelude/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
+    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/trait.Connect.html b/db_sqlx_postgres/dev/dev/prelude/trait.Connect.html index 7a3fbc94..8709f446 100644 --- a/db_sqlx_postgres/dev/dev/prelude/trait.Connect.html +++ b/db_sqlx_postgres/dev/dev/prelude/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/trait.DBOps.html b/db_sqlx_postgres/dev/dev/prelude/trait.DBOps.html index 48d247c6..76d1bd41 100644 --- a/db_sqlx_postgres/dev/dev/prelude/trait.DBOps.html +++ b/db_sqlx_postgres/dev/dev/prelude/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/trait.GetConnection.html b/db_sqlx_postgres/dev/dev/prelude/trait.GetConnection.html index 3478718f..f380bb6f 100644 --- a/db_sqlx_postgres/dev/dev/prelude/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/dev/prelude/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/trait.MCDatabase.html b/db_sqlx_postgres/dev/dev/prelude/trait.MCDatabase.html index cbe2901c..fd4cef38 100644 --- a/db_sqlx_postgres/dev/dev/prelude/trait.MCDatabase.html +++ b/db_sqlx_postgres/dev/dev/prelude/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_sqlx_postgres::dev::dev::prelude::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/trait.Migrate.html b/db_sqlx_postgres/dev/dev/prelude/trait.Migrate.html index cd2d76ac..4c956eb7 100644 --- a/db_sqlx_postgres/dev/dev/prelude/trait.Migrate.html +++ b/db_sqlx_postgres/dev/dev/prelude/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/type.BoxDynError.html b/db_sqlx_postgres/dev/dev/prelude/type.BoxDynError.html index 00de945c..29a4e850 100644 --- a/db_sqlx_postgres/dev/dev/prelude/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/dev/prelude/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::dev::dev::prelude::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/prelude/type.DBResult.html b/db_sqlx_postgres/dev/dev/prelude/type.DBResult.html index d2670082..ecf3d1f7 100644 --- a/db_sqlx_postgres/dev/dev/prelude/type.DBResult.html +++ b/db_sqlx_postgres/dev/dev/prelude/type.DBResult.html @@ -4,6 +4,6 @@
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::dev::dev::prelude::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.AddNotification.html b/db_sqlx_postgres/dev/dev/struct.AddNotification.html index 43b3d9c2..14a7c7ba 100644 --- a/db_sqlx_postgres/dev/dev/struct.AddNotification.html +++ b/db_sqlx_postgres/dev/dev/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.Captcha.html b/db_sqlx_postgres/dev/dev/struct.Captcha.html index 9c862619..eb14be7e 100644 --- a/db_sqlx_postgres/dev/dev/struct.Captcha.html +++ b/db_sqlx_postgres/dev/dev/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.CreateCaptcha.html b/db_sqlx_postgres/dev/dev/struct.CreateCaptcha.html index 0f521b8d..2e8b1b8d 100644 --- a/db_sqlx_postgres/dev/dev/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/dev/dev/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.Level.html b/db_sqlx_postgres/dev/dev/struct.Level.html index b1b688f6..617225b3 100644 --- a/db_sqlx_postgres/dev/dev/struct.Level.html +++ b/db_sqlx_postgres/dev/dev/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.NameHash.html b/db_sqlx_postgres/dev/dev/struct.NameHash.html index 4a4b5d7d..6c817be9 100644 --- a/db_sqlx_postgres/dev/dev/struct.NameHash.html +++ b/db_sqlx_postgres/dev/dev/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.Notification.html b/db_sqlx_postgres/dev/dev/struct.Notification.html index 40fb1a97..abc13e8a 100644 --- a/db_sqlx_postgres/dev/dev/struct.Notification.html +++ b/db_sqlx_postgres/dev/dev/struct.Notification.html @@ -5,49 +5,49 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.Register.html b/db_sqlx_postgres/dev/dev/struct.Register.html index 18b6669f..a706d156 100644 --- a/db_sqlx_postgres/dev/dev/struct.Register.html +++ b/db_sqlx_postgres/dev/dev/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.Secret.html b/db_sqlx_postgres/dev/dev/struct.Secret.html index f79aa3e2..4ce3f679 100644 --- a/db_sqlx_postgres/dev/dev/struct.Secret.html +++ b/db_sqlx_postgres/dev/dev/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.StatsUnixTimestamp.html b/db_sqlx_postgres/dev/dev/struct.StatsUnixTimestamp.html index 02fbfeb7..a2b1afe6 100644 --- a/db_sqlx_postgres/dev/dev/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/dev/dev/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64, Global>,
-    pub solves: Vec<i64, Global>,
-    pub confirms: Vec<i64, Global>,
+    pub config_fetches: Vec<i64, Global>,
+    pub solves: Vec<i64, Global>,
+    pub confirms: Vec<i64, Global>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

-
solves: Vec<i64, Global>

times at which the PoW was solved

-
confirms: Vec<i64, Global>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

+
solves: Vec<i64, Global>

times at which the PoW was solved

+
confirms: Vec<i64, Global>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.TrafficPattern.html b/db_sqlx_postgres/dev/dev/struct.TrafficPattern.html index cca0d842..c60df2cb 100644 --- a/db_sqlx_postgres/dev/dev/struct.TrafficPattern.html +++ b/db_sqlx_postgres/dev/dev/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/struct.UpdateEmail.html b/db_sqlx_postgres/dev/dev/struct.UpdateEmail.html index 86148273..9d4c1f6d 100644 --- a/db_sqlx_postgres/dev/dev/struct.UpdateEmail.html +++ b/db_sqlx_postgres/dev/dev/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/trait.CloneSPDatabase.html b/db_sqlx_postgres/dev/dev/trait.CloneSPDatabase.html index 8397b2bf..74f3e866 100644 --- a/db_sqlx_postgres/dev/dev/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/dev/dev/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
+    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/trait.Connect.html b/db_sqlx_postgres/dev/dev/trait.Connect.html index 7252ae45..d47a16f9 100644 --- a/db_sqlx_postgres/dev/dev/trait.Connect.html +++ b/db_sqlx_postgres/dev/dev/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/trait.DBOps.html b/db_sqlx_postgres/dev/dev/trait.DBOps.html index f96f2496..d6e29774 100644 --- a/db_sqlx_postgres/dev/dev/trait.DBOps.html +++ b/db_sqlx_postgres/dev/dev/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/trait.GetConnection.html b/db_sqlx_postgres/dev/dev/trait.GetConnection.html index 31c76825..e4a6cd9e 100644 --- a/db_sqlx_postgres/dev/dev/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/dev/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/trait.MCDatabase.html b/db_sqlx_postgres/dev/dev/trait.MCDatabase.html index a48c7018..6f1a393e 100644 --- a/db_sqlx_postgres/dev/dev/trait.MCDatabase.html +++ b/db_sqlx_postgres/dev/dev/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_sqlx_postgres::dev::dev::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/trait.Migrate.html b/db_sqlx_postgres/dev/dev/trait.Migrate.html index 35e26230..c20b7e10 100644 --- a/db_sqlx_postgres/dev/dev/trait.Migrate.html +++ b/db_sqlx_postgres/dev/dev/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/type.BoxDynError.html b/db_sqlx_postgres/dev/dev/type.BoxDynError.html index a10beb32..c92546fb 100644 --- a/db_sqlx_postgres/dev/dev/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/dev/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::dev::dev::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/dev/type.DBResult.html b/db_sqlx_postgres/dev/dev/type.DBResult.html index d5107dee..72ec8257 100644 --- a/db_sqlx_postgres/dev/dev/type.DBResult.html +++ b/db_sqlx_postgres/dev/dev/type.DBResult.html @@ -4,6 +4,6 @@
-

Type Definition db_sqlx_postgres::dev::dev::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::dev::dev::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/enum.DBError.html b/db_sqlx_postgres/dev/enum.DBError.html index 52b011cb..780cd61a 100644 --- a/db_sqlx_postgres/dev/enum.DBError.html +++ b/db_sqlx_postgres/dev/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/enum.Error.html b/db_sqlx_postgres/dev/enum.Error.html index 61cfbe78..a3969894 100644 --- a/db_sqlx_postgres/dev/enum.Error.html +++ b/db_sqlx_postgres/dev/enum.Error.html @@ -6,77 +6,77 @@

Error

#[non_exhaustive]
 pub enum Error {
-
Show 15 variants Configuration(Box<dyn Error + Send + Sync + 'static, Global>), - Database(Box<dyn DatabaseError + 'static, Global>), - Io(Error), - Tls(Box<dyn Error + Send + Sync + 'static, Global>), - Protocol(String), +
Show 15 variants Configuration(Box<dyn Error + Sync + Send + 'static, Global>), + Database(Box<dyn DatabaseError + 'static, Global>), + Io(Error), + Tls(Box<dyn Error + Sync + Send + 'static, Global>), + Protocol(String), RowNotFound, TypeNotFound { - type_name: String, + type_name: String, }, ColumnIndexOutOfBounds { - index: usize, - len: usize, + index: usize, + len: usize, }, - ColumnNotFound(String), + ColumnNotFound(String), ColumnDecode { - index: String, - source: Box<dyn Error + Send + Sync + 'static, Global>, + index: String, + source: Box<dyn Error + Sync + Send + 'static, Global>, }, - Decode(Box<dyn Error + Send + Sync + 'static, Global>), + Decode(Box<dyn Error + Sync + Send + 'static, Global>), PoolTimedOut, PoolClosed, WorkerCrashed, - Migrate(Box<MigrateError, Global>), + Migrate(Box<MigrateError, Global>),
}
Expand description

Represents all the ways a method can fail within SQLx.

-

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

Configuration(Box<dyn Error + Send + Sync + 'static, Global>)

Error occurred while parsing a connection string.

-

Database(Box<dyn DatabaseError + 'static, Global>)

Error returned from the database.

-

Io(Error)

Error communicating with the database backend.

-

Tls(Box<dyn Error + Send + Sync + 'static, Global>)

Error occurred while attempting to establish a TLS connection.

-

Protocol(String)

Unexpected or invalid data encountered while communicating with the database.

+

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

Configuration(Box<dyn Error + Sync + Send + 'static, Global>)

Error occurred while parsing a connection string.

+

Database(Box<dyn DatabaseError + 'static, Global>)

Error returned from the database.

+

Io(Error)

Error communicating with the database backend.

+

Tls(Box<dyn Error + Sync + Send + 'static, Global>)

Error occurred while attempting to establish a TLS connection.

+

Protocol(String)

Unexpected or invalid data encountered while communicating with the database.

This should indicate there is a programming error in a SQLx driver or there is something corrupted with the connection to the database itself.

RowNotFound

No rows returned by a query that expected to return at least one row.

-

TypeNotFound

Fields

type_name: String

Type in query doesn’t exist. Likely due to typo or missing user type.

-

ColumnIndexOutOfBounds

Fields

index: usize
len: usize

Column index was out of bounds.

-

ColumnNotFound(String)

No column found for the given name.

-

ColumnDecode

Fields

index: String
source: Box<dyn Error + Send + Sync + 'static, Global>

Error occurred while decoding a value from a specific column.

-

Decode(Box<dyn Error + Send + Sync + 'static, Global>)

Error occurred while decoding a value.

+

TypeNotFound

Fields

type_name: String

Type in query doesn’t exist. Likely due to typo or missing user type.

+

ColumnIndexOutOfBounds

Fields

index: usize
len: usize

Column index was out of bounds.

+

ColumnNotFound(String)

No column found for the given name.

+

ColumnDecode

Fields

index: String
source: Box<dyn Error + Sync + Send + 'static, Global>

Error occurred while decoding a value from a specific column.

+

Decode(Box<dyn Error + Sync + Send + 'static, Global>)

Error occurred while decoding a value.

PoolTimedOut

A Pool::acquire timed out due to connections not becoming available or because another task encountered too many errors while trying to open a new connection.

PoolClosed

Pool::close was called while we were waiting in Pool::acquire.

WorkerCrashed

A background worker has crashed.

-

Migrate(Box<MigrateError, Global>)

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Migrate(Box<MigrateError, Global>)

Implementations

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/enum.Login.html b/db_sqlx_postgres/dev/enum.Login.html index 0cea8352..9eacd705 100644 --- a/db_sqlx_postgres/dev/enum.Login.html +++ b/db_sqlx_postgres/dev/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/errors/enum.DBError.html b/db_sqlx_postgres/dev/errors/enum.DBError.html index e9b75da3..32fb9158 100644 --- a/db_sqlx_postgres/dev/errors/enum.DBError.html +++ b/db_sqlx_postgres/dev/errors/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/errors/index.html b/db_sqlx_postgres/dev/errors/index.html index 302eb919..3d3089f2 100644 --- a/db_sqlx_postgres/dev/errors/index.html +++ b/db_sqlx_postgres/dev/errors/index.html @@ -10,5 +10,5 @@

Type Definitions

Convenience type alias for grouping driver-specific errors

Generic result data structure

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/errors/type.BoxDynError.html b/db_sqlx_postgres/dev/errors/type.BoxDynError.html index 20243e09..8e5177b3 100644 --- a/db_sqlx_postgres/dev/errors/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/errors/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::dev::errors::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/errors/type.DBResult.html b/db_sqlx_postgres/dev/errors/type.DBResult.html index f7626d69..ff0c534f 100644 --- a/db_sqlx_postgres/dev/errors/type.DBResult.html +++ b/db_sqlx_postgres/dev/errors/type.DBResult.html @@ -4,6 +4,6 @@
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::dev::errors::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/index.html b/db_sqlx_postgres/dev/index.html index 0bf26178..b3b92279 100644 --- a/db_sqlx_postgres/dev/index.html +++ b/db_sqlx_postgres/dev/index.html @@ -3,9 +3,9 @@

+

Module dev

Re-exports

-
pub use super::errors::*;
pub use super::Database;

Modules

+
pub use super::errors::*;
pub use super::Database;

Modules

useful imports for supporting a new database

represents all the ways a trait can fail using this crate

meta operations like migration and connecting to a database

@@ -39,5 +39,5 @@ trait.

Convenience type alias for grouping driver-specific errors

Generic result data structure

Attribute Macros

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/ops/index.html b/db_sqlx_postgres/dev/ops/index.html index 29cfbacd..ee74fcb7 100644 --- a/db_sqlx_postgres/dev/ops/index.html +++ b/db_sqlx_postgres/dev/ops/index.html @@ -10,5 +10,5 @@

Database operations trait(migrations, pool creation and fetching connection from pool)

Get database connection

database migrations

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/ops/trait.Connect.html b/db_sqlx_postgres/dev/ops/trait.Connect.html index a20403e2..5dbb88ba 100644 --- a/db_sqlx_postgres/dev/ops/trait.Connect.html +++ b/db_sqlx_postgres/dev/ops/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/ops/trait.DBOps.html b/db_sqlx_postgres/dev/ops/trait.DBOps.html index e38b2e42..9c8f6e67 100644 --- a/db_sqlx_postgres/dev/ops/trait.DBOps.html +++ b/db_sqlx_postgres/dev/ops/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/ops/trait.GetConnection.html b/db_sqlx_postgres/dev/ops/trait.GetConnection.html index d07e4b63..b5440321 100644 --- a/db_sqlx_postgres/dev/ops/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/ops/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/ops/trait.Migrate.html b/db_sqlx_postgres/dev/ops/trait.Migrate.html index f6829e14..e526eaf1 100644 --- a/db_sqlx_postgres/dev/ops/trait.Migrate.html +++ b/db_sqlx_postgres/dev/ops/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/attr.async_trait.html b/db_sqlx_postgres/dev/prelude/dev/attr.async_trait.html index d95569eb..60cc2e0b 100644 --- a/db_sqlx_postgres/dev/prelude/dev/attr.async_trait.html +++ b/db_sqlx_postgres/dev/prelude/dev/attr.async_trait.html @@ -4,5 +4,5 @@
#[async_trait]
+

Attribute Macro db_sqlx_postgres::dev::prelude::dev::async_trait

[]
#[async_trait]
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/enum.DBError.html b/db_sqlx_postgres/dev/prelude/dev/enum.DBError.html index c62f08b1..8495961f 100644 --- a/db_sqlx_postgres/dev/prelude/dev/enum.DBError.html +++ b/db_sqlx_postgres/dev/prelude/dev/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/enum.Login.html b/db_sqlx_postgres/dev/prelude/dev/enum.Login.html index 97af9930..0fd75dc1 100644 --- a/db_sqlx_postgres/dev/prelude/dev/enum.Login.html +++ b/db_sqlx_postgres/dev/prelude/dev/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/index.html b/db_sqlx_postgres/dev/prelude/dev/index.html index b1cdf456..211d7a0e 100644 --- a/db_sqlx_postgres/dev/prelude/dev/index.html +++ b/db_sqlx_postgres/dev/prelude/dev/index.html @@ -32,5 +32,5 @@ trait.

Convenience type alias for grouping driver-specific errors

Generic result data structure

Attribute Macros

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.AddNotification.html b/db_sqlx_postgres/dev/prelude/dev/struct.AddNotification.html index 402cf80a..73028fa7 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.AddNotification.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.Captcha.html b/db_sqlx_postgres/dev/prelude/dev/struct.Captcha.html index 1e0c7469..f9e4e096 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Captcha.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.CreateCaptcha.html b/db_sqlx_postgres/dev/prelude/dev/struct.CreateCaptcha.html index efd099c8..e4267678 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.Level.html b/db_sqlx_postgres/dev/prelude/dev/struct.Level.html index 0a92b69e..daf01849 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Level.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.NameHash.html b/db_sqlx_postgres/dev/prelude/dev/struct.NameHash.html index b6ab2191..4e845179 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.NameHash.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.Notification.html b/db_sqlx_postgres/dev/prelude/dev/struct.Notification.html index 6e8f3751..db847780 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Notification.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Notification.html @@ -5,49 +5,49 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.Register.html b/db_sqlx_postgres/dev/prelude/dev/struct.Register.html index a448f8d0..13302322 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Register.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.Secret.html b/db_sqlx_postgres/dev/prelude/dev/struct.Secret.html index 091dd744..ea63cf97 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.Secret.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.StatsUnixTimestamp.html b/db_sqlx_postgres/dev/prelude/dev/struct.StatsUnixTimestamp.html index 9fc611c1..0e6e8fdc 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64, Global>,
-    pub solves: Vec<i64, Global>,
-    pub confirms: Vec<i64, Global>,
+    pub config_fetches: Vec<i64, Global>,
+    pub solves: Vec<i64, Global>,
+    pub confirms: Vec<i64, Global>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

-
solves: Vec<i64, Global>

times at which the PoW was solved

-
confirms: Vec<i64, Global>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

+
solves: Vec<i64, Global>

times at which the PoW was solved

+
confirms: Vec<i64, Global>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.TrafficPattern.html b/db_sqlx_postgres/dev/prelude/dev/struct.TrafficPattern.html index faf36bb5..cb9ed6db 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.TrafficPattern.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/struct.UpdateEmail.html b/db_sqlx_postgres/dev/prelude/dev/struct.UpdateEmail.html index 75aad361..1d41085d 100644 --- a/db_sqlx_postgres/dev/prelude/dev/struct.UpdateEmail.html +++ b/db_sqlx_postgres/dev/prelude/dev/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/trait.CloneSPDatabase.html b/db_sqlx_postgres/dev/prelude/dev/trait.CloneSPDatabase.html index 68767bb1..0d191324 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
+    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/trait.Connect.html b/db_sqlx_postgres/dev/prelude/dev/trait.Connect.html index 8a3b472d..d627c66f 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.Connect.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/trait.DBOps.html b/db_sqlx_postgres/dev/prelude/dev/trait.DBOps.html index 38b27dc2..8ec115d4 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.DBOps.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/trait.GetConnection.html b/db_sqlx_postgres/dev/prelude/dev/trait.GetConnection.html index d2872064..b92f80bc 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/trait.MCDatabase.html b/db_sqlx_postgres/dev/prelude/dev/trait.MCDatabase.html index d5a89891..cf15bf00 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.MCDatabase.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_sqlx_postgres::dev::prelude::dev::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/trait.Migrate.html b/db_sqlx_postgres/dev/prelude/dev/trait.Migrate.html index d65837d2..894ca2d4 100644 --- a/db_sqlx_postgres/dev/prelude/dev/trait.Migrate.html +++ b/db_sqlx_postgres/dev/prelude/dev/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/type.BoxDynError.html b/db_sqlx_postgres/dev/prelude/dev/type.BoxDynError.html index 9c2f49fd..08593e09 100644 --- a/db_sqlx_postgres/dev/prelude/dev/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/prelude/dev/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::dev::prelude::dev::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/dev/type.DBResult.html b/db_sqlx_postgres/dev/prelude/dev/type.DBResult.html index abf3efd6..b363c2e9 100644 --- a/db_sqlx_postgres/dev/prelude/dev/type.DBResult.html +++ b/db_sqlx_postgres/dev/prelude/dev/type.DBResult.html @@ -4,6 +4,6 @@
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::dev::prelude::dev::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/enum.DBError.html b/db_sqlx_postgres/dev/prelude/enum.DBError.html index 25e8f3b3..ec56cfd7 100644 --- a/db_sqlx_postgres/dev/prelude/enum.DBError.html +++ b/db_sqlx_postgres/dev/prelude/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/enum.Login.html b/db_sqlx_postgres/dev/prelude/enum.Login.html index add6666a..bd0171db 100644 --- a/db_sqlx_postgres/dev/prelude/enum.Login.html +++ b/db_sqlx_postgres/dev/prelude/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/index.html b/db_sqlx_postgres/dev/prelude/index.html index 9eee0aec..aeb698f0 100644 --- a/db_sqlx_postgres/dev/prelude/index.html +++ b/db_sqlx_postgres/dev/prelude/index.html @@ -33,5 +33,5 @@ trait.

Type Definitions

Convenience type alias for grouping driver-specific errors

Generic result data structure

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.AddNotification.html b/db_sqlx_postgres/dev/prelude/struct.AddNotification.html index 0d5a94d7..aef9519c 100644 --- a/db_sqlx_postgres/dev/prelude/struct.AddNotification.html +++ b/db_sqlx_postgres/dev/prelude/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.Captcha.html b/db_sqlx_postgres/dev/prelude/struct.Captcha.html index 1c75b7b9..025fa01b 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Captcha.html +++ b/db_sqlx_postgres/dev/prelude/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.CreateCaptcha.html b/db_sqlx_postgres/dev/prelude/struct.CreateCaptcha.html index 32b04ef7..4ad6c6ff 100644 --- a/db_sqlx_postgres/dev/prelude/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/dev/prelude/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.Level.html b/db_sqlx_postgres/dev/prelude/struct.Level.html index 2a83875b..f6c37353 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Level.html +++ b/db_sqlx_postgres/dev/prelude/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.NameHash.html b/db_sqlx_postgres/dev/prelude/struct.NameHash.html index 4f786c1d..2dca3438 100644 --- a/db_sqlx_postgres/dev/prelude/struct.NameHash.html +++ b/db_sqlx_postgres/dev/prelude/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.Notification.html b/db_sqlx_postgres/dev/prelude/struct.Notification.html index 2e7fed48..dc916d19 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Notification.html +++ b/db_sqlx_postgres/dev/prelude/struct.Notification.html @@ -5,49 +5,49 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.Register.html b/db_sqlx_postgres/dev/prelude/struct.Register.html index 0a62d2e2..90ccf54f 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Register.html +++ b/db_sqlx_postgres/dev/prelude/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.Secret.html b/db_sqlx_postgres/dev/prelude/struct.Secret.html index e20c6825..b8001973 100644 --- a/db_sqlx_postgres/dev/prelude/struct.Secret.html +++ b/db_sqlx_postgres/dev/prelude/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.StatsUnixTimestamp.html b/db_sqlx_postgres/dev/prelude/struct.StatsUnixTimestamp.html index 73c872f4..de4db1d6 100644 --- a/db_sqlx_postgres/dev/prelude/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/dev/prelude/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64, Global>,
-    pub solves: Vec<i64, Global>,
-    pub confirms: Vec<i64, Global>,
+    pub config_fetches: Vec<i64, Global>,
+    pub solves: Vec<i64, Global>,
+    pub confirms: Vec<i64, Global>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

-
solves: Vec<i64, Global>

times at which the PoW was solved

-
confirms: Vec<i64, Global>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

+
solves: Vec<i64, Global>

times at which the PoW was solved

+
confirms: Vec<i64, Global>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.TrafficPattern.html b/db_sqlx_postgres/dev/prelude/struct.TrafficPattern.html index 5a81069a..0feec9aa 100644 --- a/db_sqlx_postgres/dev/prelude/struct.TrafficPattern.html +++ b/db_sqlx_postgres/dev/prelude/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/struct.UpdateEmail.html b/db_sqlx_postgres/dev/prelude/struct.UpdateEmail.html index 8b9b71c6..fa873bb8 100644 --- a/db_sqlx_postgres/dev/prelude/struct.UpdateEmail.html +++ b/db_sqlx_postgres/dev/prelude/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/trait.CloneSPDatabase.html b/db_sqlx_postgres/dev/prelude/trait.CloneSPDatabase.html index cb559506..72589755 100644 --- a/db_sqlx_postgres/dev/prelude/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/dev/prelude/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
+    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/trait.Connect.html b/db_sqlx_postgres/dev/prelude/trait.Connect.html index 96497b76..a0e9ee69 100644 --- a/db_sqlx_postgres/dev/prelude/trait.Connect.html +++ b/db_sqlx_postgres/dev/prelude/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/trait.DBOps.html b/db_sqlx_postgres/dev/prelude/trait.DBOps.html index 3e75202d..4080f7da 100644 --- a/db_sqlx_postgres/dev/prelude/trait.DBOps.html +++ b/db_sqlx_postgres/dev/prelude/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/trait.GetConnection.html b/db_sqlx_postgres/dev/prelude/trait.GetConnection.html index 33159835..3f0a11ce 100644 --- a/db_sqlx_postgres/dev/prelude/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/prelude/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/trait.MCDatabase.html b/db_sqlx_postgres/dev/prelude/trait.MCDatabase.html index fee67e54..50b3502d 100644 --- a/db_sqlx_postgres/dev/prelude/trait.MCDatabase.html +++ b/db_sqlx_postgres/dev/prelude/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_sqlx_postgres::dev::prelude::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/trait.Migrate.html b/db_sqlx_postgres/dev/prelude/trait.Migrate.html index 0af30bfa..abcabbaa 100644 --- a/db_sqlx_postgres/dev/prelude/trait.Migrate.html +++ b/db_sqlx_postgres/dev/prelude/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/type.BoxDynError.html b/db_sqlx_postgres/dev/prelude/type.BoxDynError.html index d672f33e..2dfe9d2f 100644 --- a/db_sqlx_postgres/dev/prelude/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/prelude/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::dev::prelude::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/prelude/type.DBResult.html b/db_sqlx_postgres/dev/prelude/type.DBResult.html index 7cc786a0..547f3d46 100644 --- a/db_sqlx_postgres/dev/prelude/type.DBResult.html +++ b/db_sqlx_postgres/dev/prelude/type.DBResult.html @@ -4,6 +4,6 @@
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::dev::prelude::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.AddNotification.html b/db_sqlx_postgres/dev/struct.AddNotification.html index b1b53e26..8828536f 100644 --- a/db_sqlx_postgres/dev/struct.AddNotification.html +++ b/db_sqlx_postgres/dev/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.Captcha.html b/db_sqlx_postgres/dev/struct.Captcha.html index 8014f100..8f7951d8 100644 --- a/db_sqlx_postgres/dev/struct.Captcha.html +++ b/db_sqlx_postgres/dev/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.CreateCaptcha.html b/db_sqlx_postgres/dev/struct.CreateCaptcha.html index 490e65f5..ef4f0966 100644 --- a/db_sqlx_postgres/dev/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/dev/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.Level.html b/db_sqlx_postgres/dev/struct.Level.html index f00e7e63..ed7f890d 100644 --- a/db_sqlx_postgres/dev/struct.Level.html +++ b/db_sqlx_postgres/dev/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.NameHash.html b/db_sqlx_postgres/dev/struct.NameHash.html index 4094b1c1..6eb566d1 100644 --- a/db_sqlx_postgres/dev/struct.NameHash.html +++ b/db_sqlx_postgres/dev/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.Notification.html b/db_sqlx_postgres/dev/struct.Notification.html index f904756e..262806c0 100644 --- a/db_sqlx_postgres/dev/struct.Notification.html +++ b/db_sqlx_postgres/dev/struct.Notification.html @@ -5,49 +5,49 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.Register.html b/db_sqlx_postgres/dev/struct.Register.html index 31173b1b..f03e17d6 100644 --- a/db_sqlx_postgres/dev/struct.Register.html +++ b/db_sqlx_postgres/dev/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.Secret.html b/db_sqlx_postgres/dev/struct.Secret.html index a1eeb3b7..4dc7e2a1 100644 --- a/db_sqlx_postgres/dev/struct.Secret.html +++ b/db_sqlx_postgres/dev/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.StatsUnixTimestamp.html b/db_sqlx_postgres/dev/struct.StatsUnixTimestamp.html index 1915880f..6055a230 100644 --- a/db_sqlx_postgres/dev/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/dev/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64, Global>,
-    pub solves: Vec<i64, Global>,
-    pub confirms: Vec<i64, Global>,
+    pub config_fetches: Vec<i64, Global>,
+    pub solves: Vec<i64, Global>,
+    pub confirms: Vec<i64, Global>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

-
solves: Vec<i64, Global>

times at which the PoW was solved

-
confirms: Vec<i64, Global>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

+
solves: Vec<i64, Global>

times at which the PoW was solved

+
confirms: Vec<i64, Global>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.TrafficPattern.html b/db_sqlx_postgres/dev/struct.TrafficPattern.html index 257077f0..84e6a30c 100644 --- a/db_sqlx_postgres/dev/struct.TrafficPattern.html +++ b/db_sqlx_postgres/dev/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/struct.UpdateEmail.html b/db_sqlx_postgres/dev/struct.UpdateEmail.html index dabc4fa9..d0a8f817 100644 --- a/db_sqlx_postgres/dev/struct.UpdateEmail.html +++ b/db_sqlx_postgres/dev/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/tests/fn.database_works.html b/db_sqlx_postgres/dev/tests/fn.database_works.html index f0dcad41..ecbb68b7 100644 --- a/db_sqlx_postgres/dev/tests/fn.database_works.html +++ b/db_sqlx_postgres/dev/tests/fn.database_works.html @@ -4,6 +4,6 @@
pub async fn database_works<T>(
    db: &'_ T,
    p: &'_ Register<'a>,
    c: &'_ CreateCaptcha<'a>,
    l: &'_ [Level],
    tp: &'_ TrafficPattern,
    an: &'_ AddNotification<'a>
) where
    T: MCDatabase
Expand description

test all database functions

-
+

Function db_sqlx_postgres::dev::tests::database_works

source · []
pub async fn database_works<T>(
    db: &'_ T,
    p: &'_ Register<'a>,
    c: &'_ CreateCaptcha<'a>,
    l: &'_ [Level],
    tp: &'_ TrafficPattern,
    an: &'_ AddNotification<'a>
) where
    T: MCDatabase
Expand description

test all database functions

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/tests/index.html b/db_sqlx_postgres/dev/tests/index.html index 71bf5422..35a46ee7 100644 --- a/db_sqlx_postgres/dev/tests/index.html +++ b/db_sqlx_postgres/dev/tests/index.html @@ -7,5 +7,5 @@

Module db_sqlx_postgres::dev::tests

source · []
Expand description

Test utilities

Functions

test all database functions

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/trait.CloneSPDatabase.html b/db_sqlx_postgres/dev/trait.CloneSPDatabase.html index 71775278..80e95e2b 100644 --- a/db_sqlx_postgres/dev/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/dev/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
+    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/trait.Connect.html b/db_sqlx_postgres/dev/trait.Connect.html index b12e0f1e..3cb27dd0 100644 --- a/db_sqlx_postgres/dev/trait.Connect.html +++ b/db_sqlx_postgres/dev/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/trait.DBOps.html b/db_sqlx_postgres/dev/trait.DBOps.html index dd0c5f80..af3c9999 100644 --- a/db_sqlx_postgres/dev/trait.DBOps.html +++ b/db_sqlx_postgres/dev/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/trait.GetConnection.html b/db_sqlx_postgres/dev/trait.GetConnection.html index c75c80ac..f980faa0 100644 --- a/db_sqlx_postgres/dev/trait.GetConnection.html +++ b/db_sqlx_postgres/dev/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/trait.MCDatabase.html b/db_sqlx_postgres/dev/trait.MCDatabase.html index b604e28a..bbcf5452 100644 --- a/db_sqlx_postgres/dev/trait.MCDatabase.html +++ b/db_sqlx_postgres/dev/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_sqlx_postgres::dev::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/trait.Migrate.html b/db_sqlx_postgres/dev/trait.Migrate.html index 4aca0261..df288074 100644 --- a/db_sqlx_postgres/dev/trait.Migrate.html +++ b/db_sqlx_postgres/dev/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/dev/type.BoxDynError.html b/db_sqlx_postgres/dev/type.BoxDynError.html index 49c24238..6ac2a0b3 100644 --- a/db_sqlx_postgres/dev/type.BoxDynError.html +++ b/db_sqlx_postgres/dev/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::dev::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/dev/type.DBResult.html b/db_sqlx_postgres/dev/type.DBResult.html index 2770c069..2e4d5880 100644 --- a/db_sqlx_postgres/dev/type.DBResult.html +++ b/db_sqlx_postgres/dev/type.DBResult.html @@ -4,6 +4,6 @@
-

Type Definition db_sqlx_postgres::dev::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::dev::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/enum.ConnectionOptions.html b/db_sqlx_postgres/enum.ConnectionOptions.html index 88f17695..4c678055 100644 --- a/db_sqlx_postgres/enum.ConnectionOptions.html +++ b/db_sqlx_postgres/enum.ConnectionOptions.html @@ -10,28 +10,28 @@ }
Expand description

Connect to databse

Variants

Fresh(Fresh)

fresh connection

Existing(Conn)

existing connection

-

Trait Implementations

database specific pool-type

-

database specific error-type +

Trait Implementations

database specific pool-type

+

database specific error-type create connection pool Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/errors/fn.map_register_err.html b/db_sqlx_postgres/errors/fn.map_register_err.html index 5f3a7a56..7837f1cd 100644 --- a/db_sqlx_postgres/errors/fn.map_register_err.html +++ b/db_sqlx_postgres/errors/fn.map_register_err.html @@ -5,5 +5,5 @@
pub fn map_register_err(e: Error) -> DBError
Expand description

map postgres errors to DBError types

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/errors/fn.map_row_not_found_err.html b/db_sqlx_postgres/errors/fn.map_row_not_found_err.html index a087bb67..0dfc632d 100644 --- a/db_sqlx_postgres/errors/fn.map_row_not_found_err.html +++ b/db_sqlx_postgres/errors/fn.map_row_not_found_err.html @@ -5,5 +5,5 @@
pub fn map_row_not_found_err(e: Error, row_not_found: DBError) -> DBError
Expand description

map custom row not found error to DB error

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/errors/index.html b/db_sqlx_postgres/errors/index.html index 984eb99f..e984672f 100644 --- a/db_sqlx_postgres/errors/index.html +++ b/db_sqlx_postgres/errors/index.html @@ -8,5 +8,5 @@

Functions

map postgres errors to DBError types

map custom row not found error to DB error

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/index.html b/db_sqlx_postgres/index.html index ddc35b9b..686c9fc1 100644 --- a/db_sqlx_postgres/index.html +++ b/db_sqlx_postgres/index.html @@ -11,5 +11,5 @@

Represents notification

Enums

Connect to databse

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/attr.async_trait.html b/db_sqlx_postgres/prelude/dev/attr.async_trait.html index b1501f10..cde614e0 100644 --- a/db_sqlx_postgres/prelude/dev/attr.async_trait.html +++ b/db_sqlx_postgres/prelude/dev/attr.async_trait.html @@ -4,5 +4,5 @@
#[async_trait]
+

Attribute Macro db_sqlx_postgres::prelude::dev::async_trait

[]
#[async_trait]
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/enum.DBError.html b/db_sqlx_postgres/prelude/dev/enum.DBError.html index 4876d913..9c31494c 100644 --- a/db_sqlx_postgres/prelude/dev/enum.DBError.html +++ b/db_sqlx_postgres/prelude/dev/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/enum.Login.html b/db_sqlx_postgres/prelude/dev/enum.Login.html index f37b42f1..9d747a77 100644 --- a/db_sqlx_postgres/prelude/dev/enum.Login.html +++ b/db_sqlx_postgres/prelude/dev/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/index.html b/db_sqlx_postgres/prelude/dev/index.html index 52da9bbf..0388e042 100644 --- a/db_sqlx_postgres/prelude/dev/index.html +++ b/db_sqlx_postgres/prelude/dev/index.html @@ -34,5 +34,5 @@ trait.

Convenience type alias for grouping driver-specific errors

Generic result data structure

Attribute Macros

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/enum.DBError.html b/db_sqlx_postgres/prelude/dev/prelude/enum.DBError.html index 29db01e9..124fb1e2 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/enum.DBError.html +++ b/db_sqlx_postgres/prelude/dev/prelude/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/enum.Login.html b/db_sqlx_postgres/prelude/dev/prelude/enum.Login.html index f3298f60..e57e9b2a 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/enum.Login.html +++ b/db_sqlx_postgres/prelude/dev/prelude/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/index.html b/db_sqlx_postgres/prelude/dev/prelude/index.html index 95bd0680..dfee8d19 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/index.html +++ b/db_sqlx_postgres/prelude/dev/prelude/index.html @@ -31,5 +31,5 @@ trait.

Type Definitions

Convenience type alias for grouping driver-specific errors

Generic result data structure

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.AddNotification.html b/db_sqlx_postgres/prelude/dev/prelude/struct.AddNotification.html index 464e5cb6..e8cff97d 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.AddNotification.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.Captcha.html b/db_sqlx_postgres/prelude/dev/prelude/struct.Captcha.html index 2d029b42..b63c4d1d 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.Captcha.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.CreateCaptcha.html b/db_sqlx_postgres/prelude/dev/prelude/struct.CreateCaptcha.html index f1ede6c3..22b09cfe 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.Level.html b/db_sqlx_postgres/prelude/dev/prelude/struct.Level.html index 23b3d4b4..d736b203 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.Level.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.NameHash.html b/db_sqlx_postgres/prelude/dev/prelude/struct.NameHash.html index ccda2be9..72b39d0f 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.NameHash.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.Notification.html b/db_sqlx_postgres/prelude/dev/prelude/struct.Notification.html index 58ee0245..ba8c318d 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.Notification.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.Notification.html @@ -5,49 +5,49 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.Register.html b/db_sqlx_postgres/prelude/dev/prelude/struct.Register.html index dca92078..86c19c53 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.Register.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.Secret.html b/db_sqlx_postgres/prelude/dev/prelude/struct.Secret.html index 7512f915..4e103a98 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.Secret.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.StatsUnixTimestamp.html b/db_sqlx_postgres/prelude/dev/prelude/struct.StatsUnixTimestamp.html index 9eaee11a..3bc1a660 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64, Global>,
-    pub solves: Vec<i64, Global>,
-    pub confirms: Vec<i64, Global>,
+    pub config_fetches: Vec<i64, Global>,
+    pub solves: Vec<i64, Global>,
+    pub confirms: Vec<i64, Global>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

-
solves: Vec<i64, Global>

times at which the PoW was solved

-
confirms: Vec<i64, Global>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

+
solves: Vec<i64, Global>

times at which the PoW was solved

+
confirms: Vec<i64, Global>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.TrafficPattern.html b/db_sqlx_postgres/prelude/dev/prelude/struct.TrafficPattern.html index 56d8b5f4..be8ecf95 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.TrafficPattern.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/struct.UpdateEmail.html b/db_sqlx_postgres/prelude/dev/prelude/struct.UpdateEmail.html index d065f133..3f278705 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/struct.UpdateEmail.html +++ b/db_sqlx_postgres/prelude/dev/prelude/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/trait.CloneSPDatabase.html b/db_sqlx_postgres/prelude/dev/prelude/trait.CloneSPDatabase.html index 1c5a55e0..d3b2fc25 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/prelude/dev/prelude/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
+    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/trait.Connect.html b/db_sqlx_postgres/prelude/dev/prelude/trait.Connect.html index 6ec01f48..dec50fe8 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/trait.Connect.html +++ b/db_sqlx_postgres/prelude/dev/prelude/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/trait.DBOps.html b/db_sqlx_postgres/prelude/dev/prelude/trait.DBOps.html index e82ba5c2..7c5ff378 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/trait.DBOps.html +++ b/db_sqlx_postgres/prelude/dev/prelude/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/trait.GetConnection.html b/db_sqlx_postgres/prelude/dev/prelude/trait.GetConnection.html index 79f82c07..5596a237 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/trait.GetConnection.html +++ b/db_sqlx_postgres/prelude/dev/prelude/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/trait.MCDatabase.html b/db_sqlx_postgres/prelude/dev/prelude/trait.MCDatabase.html index 030cd03e..3abdbef4 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/trait.MCDatabase.html +++ b/db_sqlx_postgres/prelude/dev/prelude/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_sqlx_postgres::prelude::dev::prelude::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/trait.Migrate.html b/db_sqlx_postgres/prelude/dev/prelude/trait.Migrate.html index 82b331e2..7413476e 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/trait.Migrate.html +++ b/db_sqlx_postgres/prelude/dev/prelude/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/type.BoxDynError.html b/db_sqlx_postgres/prelude/dev/prelude/type.BoxDynError.html index e3dc9509..91feb90d 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/type.BoxDynError.html +++ b/db_sqlx_postgres/prelude/dev/prelude/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::prelude::dev::prelude::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/prelude/type.DBResult.html b/db_sqlx_postgres/prelude/dev/prelude/type.DBResult.html index 856fbd1f..23f03446 100644 --- a/db_sqlx_postgres/prelude/dev/prelude/type.DBResult.html +++ b/db_sqlx_postgres/prelude/dev/prelude/type.DBResult.html @@ -4,6 +4,6 @@
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::prelude::dev::prelude::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.AddNotification.html b/db_sqlx_postgres/prelude/dev/struct.AddNotification.html index 91549726..3a259c73 100644 --- a/db_sqlx_postgres/prelude/dev/struct.AddNotification.html +++ b/db_sqlx_postgres/prelude/dev/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.Captcha.html b/db_sqlx_postgres/prelude/dev/struct.Captcha.html index 9571faed..240e7280 100644 --- a/db_sqlx_postgres/prelude/dev/struct.Captcha.html +++ b/db_sqlx_postgres/prelude/dev/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.CreateCaptcha.html b/db_sqlx_postgres/prelude/dev/struct.CreateCaptcha.html index 010cc19a..d3e28b7b 100644 --- a/db_sqlx_postgres/prelude/dev/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/prelude/dev/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.Level.html b/db_sqlx_postgres/prelude/dev/struct.Level.html index fa53c764..6641d7e0 100644 --- a/db_sqlx_postgres/prelude/dev/struct.Level.html +++ b/db_sqlx_postgres/prelude/dev/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.NameHash.html b/db_sqlx_postgres/prelude/dev/struct.NameHash.html index dfa09761..2863528b 100644 --- a/db_sqlx_postgres/prelude/dev/struct.NameHash.html +++ b/db_sqlx_postgres/prelude/dev/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.Notification.html b/db_sqlx_postgres/prelude/dev/struct.Notification.html index bc7f94c6..c412858b 100644 --- a/db_sqlx_postgres/prelude/dev/struct.Notification.html +++ b/db_sqlx_postgres/prelude/dev/struct.Notification.html @@ -5,49 +5,49 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.Register.html b/db_sqlx_postgres/prelude/dev/struct.Register.html index 3d0c1fcd..9c0c6026 100644 --- a/db_sqlx_postgres/prelude/dev/struct.Register.html +++ b/db_sqlx_postgres/prelude/dev/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.Secret.html b/db_sqlx_postgres/prelude/dev/struct.Secret.html index 25847862..57d1d8e9 100644 --- a/db_sqlx_postgres/prelude/dev/struct.Secret.html +++ b/db_sqlx_postgres/prelude/dev/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.StatsUnixTimestamp.html b/db_sqlx_postgres/prelude/dev/struct.StatsUnixTimestamp.html index e2f1a19f..df67e0ea 100644 --- a/db_sqlx_postgres/prelude/dev/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/prelude/dev/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64, Global>,
-    pub solves: Vec<i64, Global>,
-    pub confirms: Vec<i64, Global>,
+    pub config_fetches: Vec<i64, Global>,
+    pub solves: Vec<i64, Global>,
+    pub confirms: Vec<i64, Global>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

-
solves: Vec<i64, Global>

times at which the PoW was solved

-
confirms: Vec<i64, Global>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

+
solves: Vec<i64, Global>

times at which the PoW was solved

+
confirms: Vec<i64, Global>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.TrafficPattern.html b/db_sqlx_postgres/prelude/dev/struct.TrafficPattern.html index 341ea3cd..eec26eee 100644 --- a/db_sqlx_postgres/prelude/dev/struct.TrafficPattern.html +++ b/db_sqlx_postgres/prelude/dev/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/struct.UpdateEmail.html b/db_sqlx_postgres/prelude/dev/struct.UpdateEmail.html index 2ca57db0..2379f18a 100644 --- a/db_sqlx_postgres/prelude/dev/struct.UpdateEmail.html +++ b/db_sqlx_postgres/prelude/dev/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/trait.CloneSPDatabase.html b/db_sqlx_postgres/prelude/dev/trait.CloneSPDatabase.html index 153c9d54..1258df81 100644 --- a/db_sqlx_postgres/prelude/dev/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/prelude/dev/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
+    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/trait.Connect.html b/db_sqlx_postgres/prelude/dev/trait.Connect.html index c06ea6ef..df67d60f 100644 --- a/db_sqlx_postgres/prelude/dev/trait.Connect.html +++ b/db_sqlx_postgres/prelude/dev/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/trait.DBOps.html b/db_sqlx_postgres/prelude/dev/trait.DBOps.html index b18a4574..4140f10e 100644 --- a/db_sqlx_postgres/prelude/dev/trait.DBOps.html +++ b/db_sqlx_postgres/prelude/dev/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/trait.GetConnection.html b/db_sqlx_postgres/prelude/dev/trait.GetConnection.html index 2a2126bc..eb9830a8 100644 --- a/db_sqlx_postgres/prelude/dev/trait.GetConnection.html +++ b/db_sqlx_postgres/prelude/dev/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/trait.MCDatabase.html b/db_sqlx_postgres/prelude/dev/trait.MCDatabase.html index fcd0c7be..22e2a9c2 100644 --- a/db_sqlx_postgres/prelude/dev/trait.MCDatabase.html +++ b/db_sqlx_postgres/prelude/dev/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_sqlx_postgres::prelude::dev::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/trait.Migrate.html b/db_sqlx_postgres/prelude/dev/trait.Migrate.html index 29d1982d..b7a3f761 100644 --- a/db_sqlx_postgres/prelude/dev/trait.Migrate.html +++ b/db_sqlx_postgres/prelude/dev/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/type.BoxDynError.html b/db_sqlx_postgres/prelude/dev/type.BoxDynError.html index dc62ec8e..1382eabc 100644 --- a/db_sqlx_postgres/prelude/dev/type.BoxDynError.html +++ b/db_sqlx_postgres/prelude/dev/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::prelude::dev::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/dev/type.DBResult.html b/db_sqlx_postgres/prelude/dev/type.DBResult.html index da4555dd..89a2c3a4 100644 --- a/db_sqlx_postgres/prelude/dev/type.DBResult.html +++ b/db_sqlx_postgres/prelude/dev/type.DBResult.html @@ -4,6 +4,6 @@
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::prelude::dev::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/enum.DBError.html b/db_sqlx_postgres/prelude/enum.DBError.html index a7db707f..10dcab40 100644 --- a/db_sqlx_postgres/prelude/enum.DBError.html +++ b/db_sqlx_postgres/prelude/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/enum.Login.html b/db_sqlx_postgres/prelude/enum.Login.html index c9cdad49..7a40e55c 100644 --- a/db_sqlx_postgres/prelude/enum.Login.html +++ b/db_sqlx_postgres/prelude/enum.Login.html @@ -5,41 +5,41 @@
pub enum Login<'a> {
-    Username(&'a str),
-    Email(&'a str),
+    Username(&'a str),
+    Email(&'a str),
 }
Expand description

types of credentials used as identifiers during login

-

Variants

Username(&'a str)

username as login

-

Email(&'a str)

email as login

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Username(&'a str)

username as login

+

Email(&'a str)

email as login

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/errors/enum.DBError.html b/db_sqlx_postgres/prelude/errors/enum.DBError.html index 3050beb6..4bd9a126 100644 --- a/db_sqlx_postgres/prelude/errors/enum.DBError.html +++ b/db_sqlx_postgres/prelude/errors/enum.DBError.html @@ -5,7 +5,7 @@
pub enum DBError {
-    DBError(Box<dyn Error + Send + Sync + 'static, Global>),
+    DBError(Box<dyn Error + Sync + Send + 'static, Global>),
     UsernameTaken,
     EmailTaken,
     SecretTaken,
@@ -15,7 +15,7 @@
     TrafficPatternNotFound,
     NotificationNotFound,
 }
Expand description

Error data structure grouping various error subtypes

-

Variants

DBError(Box<dyn Error + Send + Sync + 'static, Global>)

errors that are specific to a database implementation

+

Variants

DBError(Box<dyn Error + Sync + Send + 'static, Global>)

errors that are specific to a database implementation

UsernameTaken

Username is taken

EmailTaken

Email is taken

SecretTaken

Secret is taken

@@ -24,32 +24,32 @@

CaptchaNotFound

Captcha not found

TrafficPatternNotFound

Traffic pattern not found

NotificationNotFound

Notification not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/errors/index.html b/db_sqlx_postgres/prelude/errors/index.html index 5c0afee6..f4ff0d2e 100644 --- a/db_sqlx_postgres/prelude/errors/index.html +++ b/db_sqlx_postgres/prelude/errors/index.html @@ -10,5 +10,5 @@

Type Definitions

Convenience type alias for grouping driver-specific errors

Generic result data structure

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/errors/type.BoxDynError.html b/db_sqlx_postgres/prelude/errors/type.BoxDynError.html index a1b3ff97..db23bd61 100644 --- a/db_sqlx_postgres/prelude/errors/type.BoxDynError.html +++ b/db_sqlx_postgres/prelude/errors/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::prelude::errors::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/errors/type.DBResult.html b/db_sqlx_postgres/prelude/errors/type.DBResult.html index 93aa17ad..ecc1934f 100644 --- a/db_sqlx_postgres/prelude/errors/type.DBResult.html +++ b/db_sqlx_postgres/prelude/errors/type.DBResult.html @@ -4,6 +4,6 @@
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::prelude::errors::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/index.html b/db_sqlx_postgres/prelude/index.html index 3d6980fd..d6a4fc9c 100644 --- a/db_sqlx_postgres/prelude/index.html +++ b/db_sqlx_postgres/prelude/index.html @@ -36,5 +36,5 @@ trait.

Type Definitions

Convenience type alias for grouping driver-specific errors

Generic result data structure

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/ops/index.html b/db_sqlx_postgres/prelude/ops/index.html index dc16ac1c..150725b1 100644 --- a/db_sqlx_postgres/prelude/ops/index.html +++ b/db_sqlx_postgres/prelude/ops/index.html @@ -10,5 +10,5 @@

Database operations trait(migrations, pool creation and fetching connection from pool)

Get database connection

database migrations

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/ops/trait.Connect.html b/db_sqlx_postgres/prelude/ops/trait.Connect.html index 309092b4..db6c4fad 100644 --- a/db_sqlx_postgres/prelude/ops/trait.Connect.html +++ b/db_sqlx_postgres/prelude/ops/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/ops/trait.DBOps.html b/db_sqlx_postgres/prelude/ops/trait.DBOps.html index eb3ae8f8..cf7e0eb5 100644 --- a/db_sqlx_postgres/prelude/ops/trait.DBOps.html +++ b/db_sqlx_postgres/prelude/ops/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/ops/trait.GetConnection.html b/db_sqlx_postgres/prelude/ops/trait.GetConnection.html index 2ec1ae13..48bc303d 100644 --- a/db_sqlx_postgres/prelude/ops/trait.GetConnection.html +++ b/db_sqlx_postgres/prelude/ops/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/ops/trait.Migrate.html b/db_sqlx_postgres/prelude/ops/trait.Migrate.html index 994dc0c6..6cc5cfc7 100644 --- a/db_sqlx_postgres/prelude/ops/trait.Migrate.html +++ b/db_sqlx_postgres/prelude/ops/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.AddNotification.html b/db_sqlx_postgres/prelude/struct.AddNotification.html index 85b064c2..89da12d7 100644 --- a/db_sqlx_postgres/prelude/struct.AddNotification.html +++ b/db_sqlx_postgres/prelude/struct.AddNotification.html @@ -5,46 +5,46 @@
pub struct AddNotification<'a> {
-    pub to: &'a str,
-    pub from: &'a str,
-    pub heading: &'a str,
-    pub message: &'a str,
+    pub to: &'a str,
+    pub from: &'a str,
+    pub heading: &'a str,
+    pub message: &'a str,
 }
Expand description

Data required to add notification

-

Fields

to: &'a str

who is the notification addressed to?

-
from: &'a str

notification sender

-
heading: &'a str

heading of the notification

-
message: &'a str

mesage of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

to: &'a str

who is the notification addressed to?

+
from: &'a str

notification sender

+
heading: &'a str

heading of the notification

+
message: &'a str

mesage of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.Captcha.html b/db_sqlx_postgres/prelude/struct.Captcha.html index a3d53205..832e58ed 100644 --- a/db_sqlx_postgres/prelude/struct.Captcha.html +++ b/db_sqlx_postgres/prelude/struct.Captcha.html @@ -5,46 +5,46 @@
pub struct Captcha {
-    pub config_id: i32,
-    pub duration: i32,
-    pub description: String,
-    pub key: String,
+    pub config_id: i32,
+    pub duration: i32,
+    pub description: String,
+    pub key: String,
 }
Expand description

Data representing a captcha

-

Fields

config_id: i32

Database assigned ID

-
duration: i32

cool down duration

-
description: String

description of the captcha

-
key: String

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_id: i32

Database assigned ID

+
duration: i32

cool down duration

+
description: String

description of the captcha

+
key: String

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.CreateCaptcha.html b/db_sqlx_postgres/prelude/struct.CreateCaptcha.html index 5cf2a884..387f9483 100644 --- a/db_sqlx_postgres/prelude/struct.CreateCaptcha.html +++ b/db_sqlx_postgres/prelude/struct.CreateCaptcha.html @@ -5,44 +5,44 @@
pub struct CreateCaptcha<'a> {
-    pub duration: i32,
-    pub description: &'a str,
-    pub key: &'a str,
+    pub duration: i32,
+    pub description: &'a str,
+    pub key: &'a str,
 }
Expand description

data requried to create new captcha

-

Fields

duration: i32

cool down duration

-
description: &'a str

description of the captcha

-
key: &'a str

secret key of the captcha

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

duration: i32

cool down duration

+
description: &'a str

description of the captcha

+
key: &'a str

secret key of the captcha

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.Level.html b/db_sqlx_postgres/prelude/struct.Level.html index c017689c..9a5d8230 100644 --- a/db_sqlx_postgres/prelude/struct.Level.html +++ b/db_sqlx_postgres/prelude/struct.Level.html @@ -5,39 +5,39 @@
pub struct Level {
-    pub visitor_threshold: u32,
-    pub difficulty_factor: u32,
+    pub visitor_threshold: u32,
+    pub difficulty_factor: u32,
 }
Expand description

Level struct that describes threshold-difficulty factor mapping

-

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

visitor_threshold: u32difficulty_factor: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.NameHash.html b/db_sqlx_postgres/prelude/struct.NameHash.html index 73026252..340acd11 100644 --- a/db_sqlx_postgres/prelude/struct.NameHash.html +++ b/db_sqlx_postgres/prelude/struct.NameHash.html @@ -5,41 +5,41 @@
pub struct NameHash {
-    pub username: String,
-    pub hash: String,
+    pub username: String,
+    pub hash: String,
 }
Expand description

type encapsulating username and hashed password of a user

-

Fields

username: String

username

-
hash: String

hashed password

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: String

username

+
hash: String

hashed password

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.Notification.html b/db_sqlx_postgres/prelude/struct.Notification.html index 4bb076ea..ef21ba8d 100644 --- a/db_sqlx_postgres/prelude/struct.Notification.html +++ b/db_sqlx_postgres/prelude/struct.Notification.html @@ -5,49 +5,49 @@
pub struct Notification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<i64>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<i64>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<i64>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<i64>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.Register.html b/db_sqlx_postgres/prelude/struct.Register.html index ef5f908c..d3925f48 100644 --- a/db_sqlx_postgres/prelude/struct.Register.html +++ b/db_sqlx_postgres/prelude/struct.Register.html @@ -5,45 +5,45 @@
pub struct Register<'a> {
-    pub username: &'a str,
-    pub secret: &'a str,
-    pub hash: &'a str,
-    pub email: Option<&'a str>,
+    pub username: &'a str,
+    pub secret: &'a str,
+    pub hash: &'a str,
+    pub email: Option<&'a str>,
 }
Expand description

Data required to register a new user

-

Fields

username: &'a str

username of new user

-
secret: &'a str

secret of new user

-
hash: &'a str

hashed password of new use

-
email: Option<&'a str>

Optionally, email of new use

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of new user

+
secret: &'a str

secret of new user

+
hash: &'a str

hashed password of new use

+
email: Option<&'a str>

Optionally, email of new use

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.Secret.html b/db_sqlx_postgres/prelude/struct.Secret.html index 628b5289..cd0d99c1 100644 --- a/db_sqlx_postgres/prelude/struct.Secret.html +++ b/db_sqlx_postgres/prelude/struct.Secret.html @@ -5,40 +5,40 @@
pub struct Secret {
-    pub secret: String,
+    pub secret: String,
 }
Expand description

datastructure representing a user’s secret

-

Fields

secret: String

user’s secret

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

secret: String

user’s secret

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.StatsUnixTimestamp.html b/db_sqlx_postgres/prelude/struct.StatsUnixTimestamp.html index c00c6cbf..ef12f1ce 100644 --- a/db_sqlx_postgres/prelude/struct.StatsUnixTimestamp.html +++ b/db_sqlx_postgres/prelude/struct.StatsUnixTimestamp.html @@ -5,44 +5,44 @@
pub struct StatsUnixTimestamp {
-    pub config_fetches: Vec<i64, Global>,
-    pub solves: Vec<i64, Global>,
-    pub confirms: Vec<i64, Global>,
+    pub config_fetches: Vec<i64, Global>,
+    pub solves: Vec<i64, Global>,
+    pub confirms: Vec<i64, Global>,
 }
Expand description

Captcha statistics with time recorded in UNIX epoch formats

-

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

-
solves: Vec<i64, Global>

times at which the PoW was solved

-
confirms: Vec<i64, Global>

times at which the PoW token was verified

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

config_fetches: Vec<i64, Global>

times at which the configuration were fetched

+
solves: Vec<i64, Global>

times at which the PoW was solved

+
confirms: Vec<i64, Global>

times at which the PoW token was verified

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.TrafficPattern.html b/db_sqlx_postgres/prelude/struct.TrafficPattern.html index c026db3a..ab85650e 100644 --- a/db_sqlx_postgres/prelude/struct.TrafficPattern.html +++ b/db_sqlx_postgres/prelude/struct.TrafficPattern.html @@ -5,44 +5,44 @@
pub struct TrafficPattern {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/struct.UpdateEmail.html b/db_sqlx_postgres/prelude/struct.UpdateEmail.html index 8a2658cf..8d56e348 100644 --- a/db_sqlx_postgres/prelude/struct.UpdateEmail.html +++ b/db_sqlx_postgres/prelude/struct.UpdateEmail.html @@ -5,41 +5,41 @@
pub struct UpdateEmail<'a> {
-    pub username: &'a str,
-    pub new_email: &'a str,
+    pub username: &'a str,
+    pub new_email: &'a str,
 }
Expand description

data required to update them email of a user

-

Fields

username: &'a str

username of the user

-
new_email: &'a str

new email address of the user

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

username: &'a str

username of the user

+
new_email: &'a str

new email address of the user

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/tests/fn.database_works.html b/db_sqlx_postgres/prelude/tests/fn.database_works.html index 7ce3c818..7138eb55 100644 --- a/db_sqlx_postgres/prelude/tests/fn.database_works.html +++ b/db_sqlx_postgres/prelude/tests/fn.database_works.html @@ -4,6 +4,6 @@
pub async fn database_works<T>(
    db: &'_ T,
    p: &'_ Register<'a>,
    c: &'_ CreateCaptcha<'a>,
    l: &'_ [Level],
    tp: &'_ TrafficPattern,
    an: &'_ AddNotification<'a>
) where
    T: MCDatabase
Expand description

test all database functions

-
+

Function db_sqlx_postgres::prelude::tests::database_works

source · []
pub async fn database_works<T>(
    db: &'_ T,
    p: &'_ Register<'a>,
    c: &'_ CreateCaptcha<'a>,
    l: &'_ [Level],
    tp: &'_ TrafficPattern,
    an: &'_ AddNotification<'a>
) where
    T: MCDatabase
Expand description

test all database functions

+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/tests/index.html b/db_sqlx_postgres/prelude/tests/index.html index 1874f649..47f2681b 100644 --- a/db_sqlx_postgres/prelude/tests/index.html +++ b/db_sqlx_postgres/prelude/tests/index.html @@ -7,5 +7,5 @@

Module db_sqlx_postgres::prelude::tests

source · []
Expand description

Test utilities

Functions

test all database functions

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/trait.CloneSPDatabase.html b/db_sqlx_postgres/prelude/trait.CloneSPDatabase.html index f8b5fa6f..5e41b88a 100644 --- a/db_sqlx_postgres/prelude/trait.CloneSPDatabase.html +++ b/db_sqlx_postgres/prelude/trait.CloneSPDatabase.html @@ -5,8 +5,8 @@
pub trait CloneSPDatabase {
-    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
+    fn clone_db(&self) -> Box<dyn MCDatabase + 'static, Global>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/trait.Connect.html b/db_sqlx_postgres/prelude/trait.Connect.html index 71f14f44..cd7dc587 100644 --- a/db_sqlx_postgres/prelude/trait.Connect.html +++ b/db_sqlx_postgres/prelude/trait.Connect.html @@ -3,13 +3,14 @@

+

Connect

pub trait Connect {
     type Pool: MCDatabase;
-    fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; + + fn connect<'async_trait>(
        self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Pool, DBError>> + Send + 'async_trait, Global>>
    where
        Self: 'async_trait
; }
Expand description

Create databse connection

-

Associated Types

database specific pool-type

-

Required methods

database specific error-type +

Required Associated Types

database specific pool-type

+

Required Methods

database specific error-type create connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/trait.DBOps.html b/db_sqlx_postgres/prelude/trait.DBOps.html index 1d8541cc..2b20d4ac 100644 --- a/db_sqlx_postgres/prelude/trait.DBOps.html +++ b/db_sqlx_postgres/prelude/trait.DBOps.html @@ -5,5 +5,5 @@
pub trait DBOps: GetConnection + Migrate { }
Expand description

Database operations trait(migrations, pool creation and fetching connection from pool)

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/trait.GetConnection.html b/db_sqlx_postgres/prelude/trait.GetConnection.html index 71246d52..126fe582 100644 --- a/db_sqlx_postgres/prelude/trait.GetConnection.html +++ b/db_sqlx_postgres/prelude/trait.GetConnection.html @@ -3,13 +3,14 @@

+

GetConnection

pub trait GetConnection {
     type Conn;
-    fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + + fn get_conn<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<Self::Conn, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

Get database connection

-

Associated Types

database connection type

-

Required methods

database specific error-type +

Required Associated Types

database connection type

+

Required Methods

database specific error-type get connection from connection pool

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/trait.MCDatabase.html b/db_sqlx_postgres/prelude/trait.MCDatabase.html index 2e9e435a..8f8a0018 100644 --- a/db_sqlx_postgres/prelude/trait.MCDatabase.html +++ b/db_sqlx_postgres/prelude/trait.MCDatabase.html @@ -4,78 +4,78 @@
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
-
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; - fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; - fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; - fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; +

Trait db_sqlx_postgres::prelude::MCDatabase

source · []
pub trait MCDatabase: Send + Sync + CloneSPDatabase {
+
Show 35 methods fn ping<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn register<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 Register<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn delete_user<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn username_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn email_exists<'life0, 'life1, 'async_trait>(
        &'life0 self,
        email: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_email<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 UpdateEmail<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        l: &'life1 Login<'_>
    ) -> Pin<Box<dyn Future<Output = Result<NameHash, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_password<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 NameHash
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_username<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        current: &'life1 str,
        new: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_secret<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Secret, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_secret<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        secret: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_config<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Captcha, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_all_user_captchas<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Captcha, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_metadata<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        p: &'life2 CreateCaptcha<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn update_captcha_key<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        old_key: &'life2 str,
        new_key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn add_captcha_levels<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        levels: &'life3 [Level]
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn captcha_exists<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<bool, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_captcha<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_levels<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: Option<&'life1 str>,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Level, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn get_captcha_cooldown<'life0, 'life1, 'async_trait>(
        &'life0 self,
        captcha_key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<i32, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn add_traffic_pattern<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str,
        pattern: &'life3 TrafficPattern
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; + fn get_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<TrafficPattern, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn delete_traffic_pattern<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        captcha_key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn create_notification<'life0, 'life1, 'async_trait>(
        &'life0 self,
        p: &'life1 AddNotification<'_>
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn get_all_unread_notifications<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Notification, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn mark_notification_read<'life0, 'life1, 'async_trait>(
        &'life0 self,
        username: &'life1 str,
        id: i32
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_fetch<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'async_trait>(
        &'life0 self,
        key: &'life1 str
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        Self: 'async_trait
; + fn fetch_config_fetched<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        user: &'life1 str,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = Result<Vec<i64, Global>, DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
;
}
Expand description

mCaptcha’s database requirements. To implement support for $Database, kindly implement this trait.

-

Required methods

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

Implementors

+

Required Methods

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/trait.Migrate.html b/db_sqlx_postgres/prelude/trait.Migrate.html index 0af143eb..7ec360e4 100644 --- a/db_sqlx_postgres/prelude/trait.Migrate.html +++ b/db_sqlx_postgres/prelude/trait.Migrate.html @@ -5,9 +5,9 @@
pub trait Migrate: MCDatabase {
-    fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; + fn migrate<'life0, 'async_trait>(
        &'life0 self
    ) -> Pin<Box<dyn Future<Output = Result<(), DBError>> + Send + 'async_trait, Global>>
    where
        'life0: 'async_trait,
        Self: 'async_trait
; }
Expand description

database migrations

-

Required methods

database specific error-type +

Required Methods

database specific error-type run migrations

-

Implementors

+

Implementors

\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/type.BoxDynError.html b/db_sqlx_postgres/prelude/type.BoxDynError.html index 9c2d9589..02a5b4b9 100644 --- a/db_sqlx_postgres/prelude/type.BoxDynError.html +++ b/db_sqlx_postgres/prelude/type.BoxDynError.html @@ -4,6 +4,6 @@
pub type BoxDynError = Box<dyn Error + Send + Sync + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

-
+

Type Definition db_sqlx_postgres::prelude::BoxDynError

source · []
pub type BoxDynError = Box<dyn Error + Sync + Send + 'static, Global>;
Expand description

Convenience type alias for grouping driver-specific errors

+
\ No newline at end of file diff --git a/db_sqlx_postgres/prelude/type.DBResult.html b/db_sqlx_postgres/prelude/type.DBResult.html index dd1f6965..0161044f 100644 --- a/db_sqlx_postgres/prelude/type.DBResult.html +++ b/db_sqlx_postgres/prelude/type.DBResult.html @@ -4,6 +4,6 @@
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

-
+

Type Definition db_sqlx_postgres::prelude::DBResult

source · []
pub type DBResult<V> = Result<V, DBError>;
Expand description

Generic result data structure

+
\ No newline at end of file diff --git a/db_sqlx_postgres/struct.Conn.html b/db_sqlx_postgres/struct.Conn.html index de0d23b9..d3c96152 100644 --- a/db_sqlx_postgres/struct.Conn.html +++ b/db_sqlx_postgres/struct.Conn.html @@ -5,25 +5,25 @@
pub struct Conn(pub PgPool);
Expand description

Use an existing database pool

-

Tuple Fields

0: PgPool

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Tuple Fields

0: PgPool

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/struct.Database.html b/db_sqlx_postgres/struct.Database.html index 50a3f8a7..3e08be04 100644 --- a/db_sqlx_postgres/struct.Database.html +++ b/db_sqlx_postgres/struct.Database.html @@ -6,68 +6,68 @@

Database

pub struct Database {
     pub pool: PgPool,
-}

Fields

pool: PgPool

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

ping DB

-

register a new user

-

delete a user

-

check if username exists

-

get user email

-

check if email exists

-

update a user’s email

-

get a user’s password

-

update user’s password

-

update username

-

get a user’s secret

-

update a user’s secret

-

create new captcha

-

Get captcha config

-

Get all captchas belonging to user

-

update captcha metadata; doesn’t change captcha key

-

update captcha key; doesn’t change metadata

-

Add levels to captcha

-

check if captcha exists

-

Delete all levels of a captcha

-

Delete captcha

-

Get captcha levels

-

Get captcha’s cooldown period

-

Add traffic configuration

-

Get traffic configuration

-

Delete traffic configuration

-

create new notification

-

get all unread notifications

-

mark a notification read

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

featch PoWConfig fetches

-

featch PoWConfig solves

-

featch PoWConfig confirms

-

database specific error-type +}

Fields

pool: PgPool

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

ping DB

+

register a new user

+

delete a user

+

check if username exists

+

get user email

+

check if email exists

+

update a user’s email

+

get a user’s password

+

update user’s password

+

update username

+

get a user’s secret

+

update a user’s secret

+

create new captcha

+

Get captcha config

+

Get all captchas belonging to user

+

update captcha metadata; doesn’t change captcha key

+

update captcha key; doesn’t change metadata

+

Add levels to captcha

+

check if captcha exists

+

Delete all levels of a captcha

+

Delete captcha

+

Get captcha levels

+

Get captcha’s cooldown period

+

Add traffic configuration

+

Get traffic configuration

+

Delete traffic configuration

+

create new notification

+

get all unread notifications

+

mark a notification read

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

featch PoWConfig fetches

+

featch PoWConfig solves

+

featch PoWConfig confirms

+

database specific error-type run migrations Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

clone DB

-

Returns the argument unchanged.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

clone DB

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/struct.Fresh.html b/db_sqlx_postgres/struct.Fresh.html index e22eab9d..eaeee262 100644 --- a/db_sqlx_postgres/struct.Fresh.html +++ b/db_sqlx_postgres/struct.Fresh.html @@ -6,27 +6,27 @@

Fresh

pub struct Fresh {
     pub pool_options: PgPoolOptions,
-    pub disable_logging: bool,
-    pub url: String,
-}

Fields

pool_options: PgPoolOptionsdisable_logging: boolurl: String

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub disable_logging: bool, + pub url: String, +}

Fields

pool_options: PgPoolOptionsdisable_logging: boolurl: String

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/db_sqlx_postgres/struct.InnerNotification.html b/db_sqlx_postgres/struct.InnerNotification.html index e37f18e3..1aea5be0 100644 --- a/db_sqlx_postgres/struct.InnerNotification.html +++ b/db_sqlx_postgres/struct.InnerNotification.html @@ -5,47 +5,47 @@
pub struct InnerNotification {
-    pub name: Option<String>,
-    pub heading: Option<String>,
-    pub message: Option<String>,
-    pub received: Option<OffsetDateTime>,
-    pub id: Option<i32>,
+    pub name: Option<String>,
+    pub heading: Option<String>,
+    pub message: Option<String>,
+    pub received: Option<OffsetDateTime>,
+    pub id: Option<i32>,
 }
Expand description

Represents notification

-

Fields

name: Option<String>

receiver name of the notification

-
heading: Option<String>

heading of the notification

-
message: Option<String>

message of the notification

-
received: Option<OffsetDateTime>

when notification was received

-
id: Option<i32>

db assigned ID of the notification

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

name: Option<String>

receiver name of the notification

+
heading: Option<String>

heading of the notification

+
message: Option<String>

message of the notification

+
received: Option<OffsetDateTime>

when notification was received

+
id: Option<i32>

db assigned ID of the notification

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/implementors/core/clone/trait.Clone.js b/implementors/core/clone/trait.Clone.js index 1cd5cf7a..f6df42d4 100644 --- a/implementors/core/clone/trait.Clone.js +++ b/implementors/core/clone/trait.Clone.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl<'a> Clone for Register<'a>","synthetic":false,"types":["db_core::Register"]},{"text":"impl<'a> Clone for UpdateEmail<'a>","synthetic":false,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Clone for Login<'a>","synthetic":false,"types":["db_core::Login"]},{"text":"impl Clone for NameHash","synthetic":false,"types":["db_core::NameHash"]},{"text":"impl Clone for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Clone for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> Clone for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl Clone for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Clone for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl Clone for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl Clone for Secret","synthetic":false,"types":["db_core::Secret"]},{"text":"impl Clone for Box<dyn MCDatabase>","synthetic":false,"types":["alloc::boxed::Box"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl Clone for Database","synthetic":false,"types":["db_sqlx_postgres::Database"]},{"text":"impl Clone for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl Clone for Email","synthetic":false,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Clone for ChangePasswordReqest","synthetic":false,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Clone for Username","synthetic":false,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Clone for AccountCheckPayload","synthetic":false,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Clone for AccountCheckResp","synthetic":false,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Clone for Register","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Clone for Login","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Clone for Password","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Clone for MCaptchaDetails","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Clone for DeleteCaptcha","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Clone for TrafficPatternRequest","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Clone for UpdateTrafficPattern","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Clone for Levels","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Clone for I32Levels","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Clone for StatsPayload","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Clone for BuildDetails","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Clone for BuildDetailsBuilder","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Clone for Health","synthetic":false,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Clone for HealthBuilder","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Clone for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Clone for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Clone for GetConfigPayload","synthetic":false,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Clone for ValidationToken","synthetic":false,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Clone for CaptchaValidateResp","synthetic":false,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Clone for Date","synthetic":false,"types":["mcaptcha::date::Date"]},{"text":"impl<'a> Clone for IndexPage<'a>","synthetic":false,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl<'a, K: Clone, V: Clone> Clone for SudoPage<'a, K, V> where
    K: Display + Render,
    V: Display + Render, 
","synthetic":false,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl<'a> Clone for ErrorPage<'a>","synthetic":false,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl<'a> Clone for IndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl<'a> Clone for AdvanceIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl<'a> Clone for EasyIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Clone for AdvanceEditPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl<'a> Clone for EasyEditPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Clone for Server","synthetic":false,"types":["mcaptcha::settings::Server"]},{"text":"impl Clone for Captcha","synthetic":false,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Clone for DefaultDifficultyStrategy","synthetic":false,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Clone for Smtp","synthetic":false,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Clone for DatabaseBuilder","synthetic":false,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Clone for Database","synthetic":false,"types":["mcaptcha::settings::Database"]},{"text":"impl Clone for Redis","synthetic":false,"types":["mcaptcha::settings::Redis"]},{"text":"impl Clone for Settings","synthetic":false,"types":["mcaptcha::settings::Settings"]},{"text":"impl Clone for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Clone for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl Clone for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::widget::IndexPage"]}]; +implementors["db_core"] = [{"text":"impl<'a> Clone for Register<'a>","synthetic":false,"types":["db_core::Register"]},{"text":"impl<'a> Clone for UpdateEmail<'a>","synthetic":false,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Clone for Login<'a>","synthetic":false,"types":["db_core::Login"]},{"text":"impl Clone for NameHash","synthetic":false,"types":["db_core::NameHash"]},{"text":"impl Clone for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Clone for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> Clone for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl Clone for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Clone for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl Clone for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl Clone for Secret","synthetic":false,"types":["db_core::Secret"]},{"text":"impl Clone for Box<dyn MCDatabase>","synthetic":false,"types":["alloc::boxed::Box"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl Clone for Database","synthetic":false,"types":["db_sqlx_postgres::Database"]},{"text":"impl Clone for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl Clone for Email","synthetic":false,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Clone for ChangePasswordReqest","synthetic":false,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Clone for Username","synthetic":false,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Clone for AccountCheckPayload","synthetic":false,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Clone for AccountCheckResp","synthetic":false,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Clone for Register","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Clone for Login","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Clone for Password","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Clone for MCaptchaDetails","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Clone for DeleteCaptcha","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Clone for TrafficPatternRequest","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Clone for UpdateTrafficPattern","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Clone for Levels","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Clone for I32Levels","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Clone for StatsPayload","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Clone for BuildDetails","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Clone for BuildDetailsBuilder","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Clone for Health","synthetic":false,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Clone for HealthBuilder","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Clone for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Clone for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Clone for GetConfigPayload","synthetic":false,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Clone for ValidationToken","synthetic":false,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Clone for CaptchaValidateResp","synthetic":false,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Clone for Date","synthetic":false,"types":["mcaptcha::date::Date"]},{"text":"impl<'a> Clone for IndexPage<'a>","synthetic":false,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl<'a, K: Clone, V: Clone> Clone for SudoPage<'a, K, V> where
    K: Display + Render,
    V: Display + Render, 
","synthetic":false,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl<'a> Clone for ErrorPage<'a>","synthetic":false,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl<'a> Clone for IndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl<'a> Clone for AdvanceIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl<'a> Clone for EasyIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Clone for AdvanceEditPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl<'a> Clone for EasyEditPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Clone for Server","synthetic":false,"types":["mcaptcha::settings::Server"]},{"text":"impl Clone for Captcha","synthetic":false,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Clone for DefaultDifficultyStrategy","synthetic":false,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Clone for Smtp","synthetic":false,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Clone for DatabaseBuilder","synthetic":false,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Clone for Database","synthetic":false,"types":["mcaptcha::settings::Database"]},{"text":"impl Clone for Redis","synthetic":false,"types":["mcaptcha::settings::Redis"]},{"text":"impl Clone for Settings","synthetic":false,"types":["mcaptcha::settings::Settings"]},{"text":"impl Clone for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Clone for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl Clone for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Clone for IndexPage","synthetic":false,"types":["mcaptcha::widget::IndexPage"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/cmp/trait.PartialEq.js b/implementors/core/cmp/trait.PartialEq.js index c4095cf8..f6617d87 100644 --- a/implementors/core/cmp/trait.PartialEq.js +++ b/implementors/core/cmp/trait.PartialEq.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl<'a> PartialEq<Register<'a>> for Register<'a>","synthetic":false,"types":["db_core::Register"]},{"text":"impl<'a> PartialEq<UpdateEmail<'a>> for UpdateEmail<'a>","synthetic":false,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> PartialEq<Login<'a>> for Login<'a>","synthetic":false,"types":["db_core::Login"]},{"text":"impl PartialEq<NameHash> for NameHash","synthetic":false,"types":["db_core::NameHash"]},{"text":"impl PartialEq<StatsUnixTimestamp> for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl PartialEq<Notification> for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> PartialEq<AddNotification<'a>> for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl PartialEq<TrafficPattern> for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> PartialEq<CreateCaptcha<'a>> for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl PartialEq<Captcha> for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl PartialEq<Secret> for Secret","synthetic":false,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl PartialEq<InnerNotification> for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl PartialEq<AddNotificationRequest> for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl PartialEq<NotificationResp> for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl PartialEq<DBErrorWrapper> for DBErrorWrapper","synthetic":false,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl PartialEq<SmtpErrorWrapper> for SmtpErrorWrapper","synthetic":false,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl PartialEq<ServiceError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl PartialEq<PageError> for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl PartialEq<CaptchaStats> for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl PartialEq<Real> for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl PartialEq<Dummy> for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]}]; +implementors["db_core"] = [{"text":"impl<'a> PartialEq<Register<'a>> for Register<'a>","synthetic":false,"types":["db_core::Register"]},{"text":"impl<'a> PartialEq<UpdateEmail<'a>> for UpdateEmail<'a>","synthetic":false,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> PartialEq<Login<'a>> for Login<'a>","synthetic":false,"types":["db_core::Login"]},{"text":"impl PartialEq<NameHash> for NameHash","synthetic":false,"types":["db_core::NameHash"]},{"text":"impl PartialEq<StatsUnixTimestamp> for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl PartialEq<Notification> for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> PartialEq<AddNotification<'a>> for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl PartialEq<TrafficPattern> for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> PartialEq<CreateCaptcha<'a>> for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl PartialEq<Captcha> for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl PartialEq<Secret> for Secret","synthetic":false,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl PartialEq<InnerNotification> for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl PartialEq<AddNotificationRequest> for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl PartialEq<NotificationResp> for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl PartialEq<DBErrorWrapper> for DBErrorWrapper","synthetic":false,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl PartialEq<SmtpErrorWrapper> for SmtpErrorWrapper","synthetic":false,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl PartialEq<ServiceError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl PartialEq<PageError> for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl PartialEq<CaptchaStats> for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl PartialEq<Real> for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl PartialEq<Dummy> for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/convert/trait.From.js b/implementors/core/convert/trait.From.js index ee458dc8..e670d2b8 100644 --- a/implementors/core/convert/trait.From.js +++ b/implementors/core/convert/trait.From.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["db_sqlx_postgres"] = [{"text":"impl From<InnerNotification> for Notification","synthetic":false,"types":["db_core::Notification"]}]; -implementors["mcaptcha"] = [{"text":"impl From<ChangePasswordReqest> for UpdatePassword","synthetic":false,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl From<&'_ TrafficPatternRequest> for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl From<UninitializedFieldError> for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl From<String> for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl From<UninitializedFieldError> for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl From<String> for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl From<Notification> for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl From<CredsError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<DBError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<ValidationErrors> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<ParseError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<CaptchaError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<Error> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<RecvError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<MailboxError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<ServiceError> for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl From<DBError> for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl From<Notification> for Notification","synthetic":false,"types":["mcaptcha::pages::panel::notifications::Notification"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl From<InnerNotification> for Notification","synthetic":false,"types":["db_core::Notification"]}]; +implementors["mcaptcha"] = [{"text":"impl From<ChangePasswordReqest> for UpdatePassword","synthetic":false,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl From<&'_ TrafficPatternRequest> for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl From<UninitializedFieldError> for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl From<String> for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl From<UninitializedFieldError> for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl From<String> for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl From<Notification> for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl From<CredsError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<DBError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<ValidationErrors> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<ParseError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<CaptchaError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<Error> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<RecvError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<MailboxError> for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl From<ServiceError> for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl From<DBError> for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl From<Notification> for Notification","synthetic":false,"types":["mcaptcha::pages::panel::notifications::Notification"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/default/trait.Default.js b/implementors/core/default/trait.Default.js index a70f9949..241dd49a 100644 --- a/implementors/core/default/trait.Default.js +++ b/implementors/core/default/trait.Default.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl Default for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Default for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> Default for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl Default for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Default for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl Default for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl Default for Secret","synthetic":false,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl Default for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl Default for TrafficPatternRequest","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Default for BuildDetailsBuilder","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Default for HealthBuilder","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Default for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Default for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl<'a> Default for AdvanceIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl<'a> Default for EasyIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Default for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Default for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl Default for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]}]; +implementors["db_core"] = [{"text":"impl Default for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Default for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> Default for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl Default for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Default for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl Default for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl Default for Secret","synthetic":false,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl Default for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl Default for TrafficPatternRequest","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Default for BuildDetailsBuilder","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Default for HealthBuilder","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Default for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Default for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl<'a> Default for AdvanceIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl<'a> Default for EasyIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Default for IndexPage","synthetic":false,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Default for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Default for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl Default for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Debug.js b/implementors/core/fmt/trait.Debug.js index f6f6d13d..f67d8eb0 100644 --- a/implementors/core/fmt/trait.Debug.js +++ b/implementors/core/fmt/trait.Debug.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl Debug for DBError","synthetic":false,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Debug for Register<'a>","synthetic":false,"types":["db_core::Register"]},{"text":"impl<'a> Debug for UpdateEmail<'a>","synthetic":false,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Debug for Login<'a>","synthetic":false,"types":["db_core::Login"]},{"text":"impl Debug for NameHash","synthetic":false,"types":["db_core::NameHash"]},{"text":"impl Debug for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Debug for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> Debug for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl Debug for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Debug for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl Debug for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl Debug for Secret","synthetic":false,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl Debug for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl Debug for Email","synthetic":false,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Debug for ChangePasswordReqest","synthetic":false,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Debug for Username","synthetic":false,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Debug for AccountCheckPayload","synthetic":false,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Debug for AccountCheckResp","synthetic":false,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Debug for Register","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Debug for Login","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Debug for Password","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Debug for MCaptchaDetails","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Debug for DeleteCaptcha","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Debug for TrafficPatternRequest","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Debug for UpdateTrafficPattern","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Debug for Levels","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Debug for I32Levels","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Debug for StatsPayload","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Debug for BuildDetails","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Debug for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Debug for Health","synthetic":false,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Debug for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Debug for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Debug for GetConfigPayload","synthetic":false,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Debug for ValidationToken","synthetic":false,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Debug for CaptchaValidateResp","synthetic":false,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Debug for Date","synthetic":false,"types":["mcaptcha::date::Date"]},{"text":"impl Debug for SmtpErrorWrapper","synthetic":false,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Debug for DBErrorWrapper","synthetic":false,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Debug for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Debug for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl Debug for Server","synthetic":false,"types":["mcaptcha::settings::Server"]},{"text":"impl Debug for Captcha","synthetic":false,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Debug for DefaultDifficultyStrategy","synthetic":false,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Debug for Smtp","synthetic":false,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Debug for DatabaseBuilder","synthetic":false,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Debug for Database","synthetic":false,"types":["mcaptcha::settings::Database"]},{"text":"impl Debug for Redis","synthetic":false,"types":["mcaptcha::settings::Redis"]},{"text":"impl Debug for Settings","synthetic":false,"types":["mcaptcha::settings::Settings"]},{"text":"impl Debug for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Debug for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl Debug for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]}]; +implementors["db_core"] = [{"text":"impl Debug for DBError","synthetic":false,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Debug for Register<'a>","synthetic":false,"types":["db_core::Register"]},{"text":"impl<'a> Debug for UpdateEmail<'a>","synthetic":false,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Debug for Login<'a>","synthetic":false,"types":["db_core::Login"]},{"text":"impl Debug for NameHash","synthetic":false,"types":["db_core::NameHash"]},{"text":"impl Debug for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Debug for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> Debug for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl Debug for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Debug for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl Debug for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl Debug for Secret","synthetic":false,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl Debug for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl Debug for Email","synthetic":false,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Debug for ChangePasswordReqest","synthetic":false,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Debug for Username","synthetic":false,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Debug for AccountCheckPayload","synthetic":false,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Debug for AccountCheckResp","synthetic":false,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Debug for Register","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Debug for Login","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Debug for Password","synthetic":false,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Debug for MCaptchaDetails","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Debug for DeleteCaptcha","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Debug for TrafficPatternRequest","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Debug for UpdateTrafficPattern","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Debug for Levels","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Debug for I32Levels","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Debug for StatsPayload","synthetic":false,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Debug for BuildDetails","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Debug for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Debug for Health","synthetic":false,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Debug for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Debug for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Debug for GetConfigPayload","synthetic":false,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Debug for ValidationToken","synthetic":false,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Debug for CaptchaValidateResp","synthetic":false,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Debug for Date","synthetic":false,"types":["mcaptcha::date::Date"]},{"text":"impl Debug for SmtpErrorWrapper","synthetic":false,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Debug for DBErrorWrapper","synthetic":false,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Debug for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Debug for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl Debug for Server","synthetic":false,"types":["mcaptcha::settings::Server"]},{"text":"impl Debug for Captcha","synthetic":false,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Debug for DefaultDifficultyStrategy","synthetic":false,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Debug for Smtp","synthetic":false,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Debug for DatabaseBuilder","synthetic":false,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Debug for Database","synthetic":false,"types":["mcaptcha::settings::Database"]},{"text":"impl Debug for Redis","synthetic":false,"types":["mcaptcha::settings::Redis"]},{"text":"impl Debug for Settings","synthetic":false,"types":["mcaptcha::settings::Settings"]},{"text":"impl Debug for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Debug for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl Debug for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/fmt/trait.Display.js b/implementors/core/fmt/trait.Display.js index 72b5726e..7e355818 100644 --- a/implementors/core/fmt/trait.Display.js +++ b/implementors/core/fmt/trait.Display.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl Display for DBError","synthetic":false,"types":["db_core::errors::DBError"]}]; -implementors["mcaptcha"] = [{"text":"impl Display for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Display for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Display for SmtpErrorWrapper","synthetic":false,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Display for DBErrorWrapper","synthetic":false,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Display for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Display for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]}]; +implementors["db_core"] = [{"text":"impl Display for DBError","synthetic":false,"types":["db_core::errors::DBError"]}]; +implementors["mcaptcha"] = [{"text":"impl Display for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Display for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Display for SmtpErrorWrapper","synthetic":false,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Display for DBErrorWrapper","synthetic":false,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Display for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Display for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Freeze.js b/implementors/core/marker/trait.Freeze.js index 5cee4774..5ecc3550 100644 --- a/implementors/core/marker/trait.Freeze.js +++ b/implementors/core/marker/trait.Freeze.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; implementors["db_core"] = [{"text":"impl Freeze for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Freeze for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> Freeze for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Freeze for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl Freeze for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl Freeze for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Freeze for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> Freeze for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl Freeze for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Freeze for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl Freeze for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl Freeze for Secret","synthetic":true,"types":["db_core::Secret"]}]; implementors["db_sqlx_postgres"] = [{"text":"impl Freeze for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl Freeze for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl Freeze for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl Freeze for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl Freeze for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl Freeze for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl Freeze for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Freeze for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl Freeze for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl Freeze for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Freeze for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl Freeze for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl Freeze for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl Freeze for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl Freeze for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl Freeze for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Freeze for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl Freeze for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl Freeze for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Freeze for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Freeze for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl Freeze for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Freeze for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Freeze for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Freeze for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl Freeze for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl Freeze for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl Freeze for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl Freeze for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Freeze for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl Freeze for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Freeze for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl Freeze for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl Freeze for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Freeze for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl Freeze for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Freeze for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl Freeze for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl Freeze for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Freeze for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Freeze for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl Freeze for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Freeze for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl Freeze for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl Freeze for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl Freeze for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl Freeze for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl Freeze for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl Freeze for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Freeze for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Freeze for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Freeze for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl Freeze for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Freeze for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Freeze for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Freeze for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl Freeze for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Freeze for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl Freeze for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Freeze for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl Freeze for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl Freeze for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl Freeze for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl Freeze for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Freeze for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl Freeze for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Freeze for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl Freeze for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Freeze for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl Freeze for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl Freeze for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl Freeze for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl Freeze for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl Freeze for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl Freeze for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl Freeze for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl Freeze for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl Freeze for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl Freeze for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl Freeze for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl Freeze for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> Freeze for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Freeze for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Freeze for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Freeze for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Freeze for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl Freeze for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Freeze for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Freeze for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl Freeze for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Freeze for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> Freeze for SudoPage<'a, K, V>","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl Freeze for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl Freeze for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> Freeze for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Freeze for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Freeze for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Freeze for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl Freeze for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl Freeze for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> Freeze for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl Freeze for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl Freeze for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl Freeze for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl Freeze for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Freeze for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> Freeze for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl Freeze for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> Freeze for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Freeze for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl Freeze for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl Freeze for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl Freeze for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> Freeze for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Freeze for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Freeze for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Freeze for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl Freeze for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl Freeze for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Freeze for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl Freeze for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Freeze for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Freeze for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl Freeze for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl Freeze for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Freeze for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Freeze for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Freeze for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Freeze for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl Freeze for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl Freeze for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl Freeze for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Freeze for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Freeze for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Freeze for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Freeze for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Freeze for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Freeze for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Freeze for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Freeze for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Freeze for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Freeze for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl Freeze for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl Freeze for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl Freeze for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl Freeze for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Freeze for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl Freeze for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Freeze for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl Freeze for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Freeze for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl Freeze for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl Freeze for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl Freeze for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl Freeze for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl Freeze for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Freeze for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Freeze for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Freeze for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; +implementors["mcaptcha"] = [{"text":"impl Freeze for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl Freeze for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Freeze for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl Freeze for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl Freeze for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Freeze for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl Freeze for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl Freeze for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl Freeze for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl Freeze for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl Freeze for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Freeze for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl Freeze for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl Freeze for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Freeze for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Freeze for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl Freeze for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Freeze for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Freeze for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Freeze for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl Freeze for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl Freeze for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl Freeze for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl Freeze for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Freeze for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl Freeze for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Freeze for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl Freeze for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl Freeze for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Freeze for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl Freeze for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Freeze for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl Freeze for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl Freeze for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Freeze for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Freeze for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl Freeze for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Freeze for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl Freeze for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl Freeze for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl Freeze for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl Freeze for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl Freeze for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl Freeze for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Freeze for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Freeze for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Freeze for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl Freeze for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Freeze for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Freeze for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Freeze for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl Freeze for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Freeze for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl Freeze for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Freeze for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl Freeze for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl Freeze for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl Freeze for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl Freeze for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Freeze for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl Freeze for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Freeze for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl Freeze for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Freeze for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl Freeze for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl Freeze for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl Freeze for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl Freeze for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl Freeze for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl Freeze for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl Freeze for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl Freeze for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl Freeze for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl Freeze for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl Freeze for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl Freeze for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> Freeze for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Freeze for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Freeze for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Freeze for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Freeze for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl Freeze for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Freeze for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Freeze for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl Freeze for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Freeze for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> Freeze for SudoPage<'a, K, V>","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl Freeze for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl Freeze for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> Freeze for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Freeze for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Freeze for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Freeze for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl Freeze for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl Freeze for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> Freeze for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl Freeze for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl Freeze for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl Freeze for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl Freeze for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Freeze for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> Freeze for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl Freeze for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> Freeze for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Freeze for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl Freeze for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl Freeze for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl Freeze for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> Freeze for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Freeze for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Freeze for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Freeze for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl Freeze for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl Freeze for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Freeze for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl Freeze for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Freeze for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Freeze for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl Freeze for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl Freeze for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Freeze for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Freeze for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Freeze for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Freeze for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl Freeze for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl Freeze for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl Freeze for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl Freeze for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Freeze for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Freeze for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Freeze for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Freeze for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Freeze for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Freeze for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Freeze for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Freeze for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Freeze for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Freeze for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl Freeze for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl Freeze for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl Freeze for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl Freeze for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Freeze for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl Freeze for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Freeze for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl Freeze for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl Freeze for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Freeze for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl Freeze for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl Freeze for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl Freeze for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl Freeze for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl Freeze for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Freeze for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Freeze for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Freeze for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Send.js b/implementors/core/marker/trait.Send.js index aa57cc2b..6f91d19e 100644 --- a/implementors/core/marker/trait.Send.js +++ b/implementors/core/marker/trait.Send.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl Send for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Send for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> Send for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Send for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl Send for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl Send for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Send for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> Send for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl Send for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Send for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl Send for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl Send for Secret","synthetic":true,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl Send for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl Send for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl Send for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl Send for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl Send for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl Send for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl Send for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Send for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl Send for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl Send for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Send for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl Send for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl Send for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl Send for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl Send for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl Send for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Send for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl Send for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl Send for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Send for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Send for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl Send for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Send for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Send for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Send for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl Send for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl Send for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl Send for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl Send for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Send for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl Send for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Send for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl Send for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl Send for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Send for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl Send for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Send for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl Send for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl Send for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Send for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Send for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl Send for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Send for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl Send for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl Send for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl Send for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl Send for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl Send for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl Send for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Send for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Send for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Send for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl Send for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Send for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Send for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Send for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl Send for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Send for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl Send for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Send for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl Send for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl Send for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl Send for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl Send for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Send for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl Send for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Send for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl Send for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Send for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl Send for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl Send for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl Send for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl Send for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl Send for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl Send for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl Send for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl Send for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl Send for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl Send for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl Send for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl Send for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> Send for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Send for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Send for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Send for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Send for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl Send for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Send for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Send for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl Send for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Send for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> Send for SudoPage<'a, K, V> where
    K: Send,
    V: Send
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl Send for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl Send for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> Send for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Send for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Send for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Send for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl Send for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl Send for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl Send for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> Send for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl Send for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl Send for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl Send for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl Send for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Send for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> Send for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl Send for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> Send for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Send for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl Send for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl Send for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl Send for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> Send for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Send for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Send for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Send for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl Send for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl Send for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Send for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl Send for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Send for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Send for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl Send for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl Send for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Send for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Send for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Send for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Send for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl Send for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl Send for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl Send for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl Send for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Send for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Send for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Send for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Send for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Send for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Send for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Send for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Send for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Send for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Send for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl Send for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl Send for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl Send for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl Send for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Send for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl Send for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Send for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl Send for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Send for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl Send for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl Send for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl Send for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl Send for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl Send for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Send for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Send for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Send for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; +implementors["db_core"] = [{"text":"impl Send for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Send for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> Send for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Send for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl Send for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl Send for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Send for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> Send for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl Send for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Send for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl Send for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl Send for Secret","synthetic":true,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl Send for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl Send for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl Send for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl Send for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl Send for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl Send for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl Send for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Send for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl Send for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl Send for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Send for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl Send for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl Send for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl Send for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl Send for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl Send for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Send for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl Send for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl Send for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Send for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Send for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl Send for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Send for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Send for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Send for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl Send for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl Send for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl Send for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl Send for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Send for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl Send for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Send for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl Send for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl Send for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Send for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl Send for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Send for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl Send for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl Send for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Send for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Send for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl Send for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Send for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl Send for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl Send for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl Send for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl Send for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl Send for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl Send for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Send for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Send for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Send for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl Send for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Send for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Send for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Send for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl Send for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Send for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl Send for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Send for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl Send for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl Send for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl Send for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl Send for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Send for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl Send for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Send for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl Send for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Send for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl Send for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl Send for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl Send for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl Send for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl Send for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl Send for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl Send for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl Send for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl Send for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl Send for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl Send for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl Send for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> Send for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Send for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Send for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Send for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Send for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl Send for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Send for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Send for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl Send for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Send for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> Send for SudoPage<'a, K, V> where
    K: Send,
    V: Send
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl Send for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl Send for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> Send for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Send for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Send for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Send for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl Send for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl Send for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl Send for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> Send for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl Send for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl Send for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl Send for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl Send for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Send for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> Send for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl Send for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> Send for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Send for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl Send for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl Send for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl Send for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> Send for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Send for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Send for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Send for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl Send for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl Send for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Send for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl Send for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Send for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Send for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl Send for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl Send for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Send for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Send for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Send for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Send for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl Send for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl Send for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl Send for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl Send for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Send for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Send for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Send for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Send for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Send for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Send for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Send for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Send for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Send for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Send for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl Send for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl Send for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl Send for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl Send for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Send for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl Send for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Send for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl Send for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl Send for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Send for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl Send for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl Send for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl Send for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl Send for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl Send for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Send for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Send for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Send for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.StructuralPartialEq.js b/implementors/core/marker/trait.StructuralPartialEq.js index ac10b9bd..aec0bedf 100644 --- a/implementors/core/marker/trait.StructuralPartialEq.js +++ b/implementors/core/marker/trait.StructuralPartialEq.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl<'a> StructuralPartialEq for Register<'a>","synthetic":false,"types":["db_core::Register"]},{"text":"impl<'a> StructuralPartialEq for UpdateEmail<'a>","synthetic":false,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> StructuralPartialEq for Login<'a>","synthetic":false,"types":["db_core::Login"]},{"text":"impl StructuralPartialEq for NameHash","synthetic":false,"types":["db_core::NameHash"]},{"text":"impl StructuralPartialEq for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl StructuralPartialEq for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> StructuralPartialEq for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl StructuralPartialEq for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> StructuralPartialEq for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl StructuralPartialEq for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl StructuralPartialEq for Secret","synthetic":false,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl StructuralPartialEq for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl StructuralPartialEq for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl StructuralPartialEq for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl StructuralPartialEq for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl StructuralPartialEq for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl StructuralPartialEq for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl StructuralPartialEq for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl StructuralPartialEq for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]}]; +implementors["db_core"] = [{"text":"impl<'a> StructuralPartialEq for Register<'a>","synthetic":false,"types":["db_core::Register"]},{"text":"impl<'a> StructuralPartialEq for UpdateEmail<'a>","synthetic":false,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> StructuralPartialEq for Login<'a>","synthetic":false,"types":["db_core::Login"]},{"text":"impl StructuralPartialEq for NameHash","synthetic":false,"types":["db_core::NameHash"]},{"text":"impl StructuralPartialEq for StatsUnixTimestamp","synthetic":false,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl StructuralPartialEq for Notification","synthetic":false,"types":["db_core::Notification"]},{"text":"impl<'a> StructuralPartialEq for AddNotification<'a>","synthetic":false,"types":["db_core::AddNotification"]},{"text":"impl StructuralPartialEq for TrafficPattern","synthetic":false,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> StructuralPartialEq for CreateCaptcha<'a>","synthetic":false,"types":["db_core::CreateCaptcha"]},{"text":"impl StructuralPartialEq for Captcha","synthetic":false,"types":["db_core::Captcha"]},{"text":"impl StructuralPartialEq for Secret","synthetic":false,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl StructuralPartialEq for InnerNotification","synthetic":false,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl StructuralPartialEq for AddNotificationRequest","synthetic":false,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl StructuralPartialEq for NotificationResp","synthetic":false,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl StructuralPartialEq for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl StructuralPartialEq for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]},{"text":"impl StructuralPartialEq for CaptchaStats","synthetic":false,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl StructuralPartialEq for Real","synthetic":false,"types":["mcaptcha::stats::Real"]},{"text":"impl StructuralPartialEq for Dummy","synthetic":false,"types":["mcaptcha::stats::Dummy"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Sync.js b/implementors/core/marker/trait.Sync.js index be382ad2..834419a4 100644 --- a/implementors/core/marker/trait.Sync.js +++ b/implementors/core/marker/trait.Sync.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl Sync for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Sync for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> Sync for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Sync for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl Sync for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl Sync for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Sync for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> Sync for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl Sync for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Sync for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl Sync for Secret","synthetic":true,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl Sync for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl Sync for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl Sync for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl Sync for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl Sync for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl Sync for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl Sync for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Sync for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl Sync for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl Sync for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Sync for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl Sync for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl Sync for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl Sync for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl Sync for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl Sync for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Sync for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl Sync for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl Sync for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Sync for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Sync for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl Sync for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Sync for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Sync for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Sync for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl Sync for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl Sync for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl Sync for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl Sync for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Sync for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl Sync for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Sync for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl Sync for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl Sync for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Sync for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl Sync for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Sync for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl Sync for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl Sync for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Sync for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Sync for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl Sync for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Sync for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl Sync for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl Sync for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl Sync for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl Sync for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl Sync for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Sync for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Sync for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Sync for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl Sync for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Sync for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Sync for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Sync for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl Sync for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Sync for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl Sync for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Sync for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl Sync for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl Sync for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl Sync for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl Sync for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Sync for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl Sync for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Sync for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl Sync for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Sync for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl Sync for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl Sync for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl Sync for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl Sync for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl Sync for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl Sync for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl Sync for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl Sync for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl Sync for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl Sync for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl Sync for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl Sync for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> Sync for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Sync for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Sync for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Sync for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Sync for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl Sync for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Sync for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Sync for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl Sync for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Sync for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> Sync for SudoPage<'a, K, V> where
    K: Sync,
    V: Sync
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl Sync for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl Sync for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> Sync for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Sync for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Sync for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Sync for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl Sync for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl Sync for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl Sync for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> Sync for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl Sync for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl Sync for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl Sync for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl Sync for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Sync for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> Sync for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl Sync for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> Sync for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Sync for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl Sync for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl Sync for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl Sync for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> Sync for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Sync for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Sync for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Sync for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl Sync for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl Sync for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Sync for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl Sync for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Sync for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Sync for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl Sync for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Sync for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Sync for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Sync for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Sync for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl Sync for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl Sync for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl Sync for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl Sync for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Sync for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Sync for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Sync for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Sync for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Sync for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Sync for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Sync for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Sync for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Sync for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Sync for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl Sync for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl Sync for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl Sync for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl Sync for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Sync for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl Sync for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Sync for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl Sync for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Sync for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl Sync for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl Sync for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl Sync for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl Sync for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl Sync for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Sync for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Sync for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Sync for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; +implementors["db_core"] = [{"text":"impl Sync for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Sync for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> Sync for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Sync for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl Sync for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl Sync for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Sync for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> Sync for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl Sync for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Sync for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl Sync for Secret","synthetic":true,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl Sync for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl Sync for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl Sync for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl Sync for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl Sync for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl Sync for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl Sync for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Sync for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl Sync for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl Sync for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Sync for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl Sync for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl Sync for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl Sync for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl Sync for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl Sync for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Sync for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl Sync for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl Sync for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Sync for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Sync for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl Sync for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Sync for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Sync for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Sync for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl Sync for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl Sync for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl Sync for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl Sync for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Sync for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl Sync for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Sync for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl Sync for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl Sync for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Sync for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl Sync for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Sync for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl Sync for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl Sync for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Sync for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Sync for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl Sync for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Sync for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl Sync for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl Sync for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl Sync for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl Sync for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl Sync for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Sync for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Sync for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Sync for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl Sync for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Sync for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Sync for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Sync for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl Sync for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Sync for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl Sync for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Sync for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl Sync for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl Sync for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl Sync for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl Sync for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Sync for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl Sync for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Sync for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl Sync for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Sync for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl Sync for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl Sync for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl Sync for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl Sync for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl Sync for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl Sync for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl Sync for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl Sync for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl Sync for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl Sync for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl Sync for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl Sync for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> Sync for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Sync for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Sync for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Sync for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Sync for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl Sync for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Sync for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Sync for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl Sync for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Sync for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> Sync for SudoPage<'a, K, V> where
    K: Sync,
    V: Sync
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl Sync for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl Sync for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> Sync for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Sync for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Sync for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Sync for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl Sync for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl Sync for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl Sync for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> Sync for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl Sync for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl Sync for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl Sync for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl Sync for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Sync for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> Sync for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl Sync for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> Sync for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Sync for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl Sync for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl Sync for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl Sync for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> Sync for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Sync for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Sync for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Sync for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl Sync for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl Sync for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Sync for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl Sync for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Sync for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Sync for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl Sync for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl Sync for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Sync for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Sync for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Sync for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Sync for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl Sync for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl Sync for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl Sync for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl Sync for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Sync for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Sync for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Sync for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Sync for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Sync for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Sync for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Sync for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Sync for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Sync for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Sync for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl Sync for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl Sync for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl Sync for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl Sync for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Sync for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl Sync for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Sync for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl Sync for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl Sync for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Sync for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl Sync for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl Sync for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl Sync for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl Sync for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl Sync for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Sync for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Sync for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Sync for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/marker/trait.Unpin.js b/implementors/core/marker/trait.Unpin.js index 9b72523d..d5a6a739 100644 --- a/implementors/core/marker/trait.Unpin.js +++ b/implementors/core/marker/trait.Unpin.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl Unpin for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Unpin for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> Unpin for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Unpin for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl Unpin for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl Unpin for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Unpin for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> Unpin for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl Unpin for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Unpin for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl Unpin for Secret","synthetic":true,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl Unpin for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl Unpin for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl Unpin for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl Unpin for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl Unpin for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl Unpin for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl Unpin for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Unpin for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl Unpin for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl Unpin for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Unpin for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl Unpin for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl Unpin for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl Unpin for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl Unpin for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl Unpin for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Unpin for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl Unpin for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl Unpin for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Unpin for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Unpin for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl Unpin for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Unpin for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Unpin for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Unpin for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl Unpin for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl Unpin for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl Unpin for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl Unpin for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Unpin for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl Unpin for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Unpin for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl Unpin for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl Unpin for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Unpin for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl Unpin for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Unpin for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl Unpin for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl Unpin for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Unpin for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Unpin for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl Unpin for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Unpin for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl Unpin for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl Unpin for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl Unpin for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl Unpin for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl Unpin for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Unpin for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Unpin for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Unpin for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl Unpin for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Unpin for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Unpin for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Unpin for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl Unpin for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Unpin for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl Unpin for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Unpin for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl Unpin for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl Unpin for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl Unpin for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl Unpin for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Unpin for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl Unpin for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Unpin for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl Unpin for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Unpin for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl Unpin for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl Unpin for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl Unpin for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl Unpin for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl Unpin for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl Unpin for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl Unpin for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl Unpin for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl Unpin for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl Unpin for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl Unpin for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl Unpin for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> Unpin for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Unpin for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Unpin for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Unpin for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Unpin for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl Unpin for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Unpin for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Unpin for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl Unpin for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Unpin for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> Unpin for SudoPage<'a, K, V> where
    K: Unpin,
    V: Unpin
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl Unpin for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl Unpin for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> Unpin for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Unpin for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Unpin for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Unpin for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl Unpin for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl Unpin for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> Unpin for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl Unpin for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl Unpin for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl Unpin for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl Unpin for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Unpin for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> Unpin for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl Unpin for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> Unpin for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Unpin for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl Unpin for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl Unpin for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl Unpin for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> Unpin for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Unpin for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Unpin for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Unpin for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl Unpin for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl Unpin for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Unpin for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl Unpin for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Unpin for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Unpin for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl Unpin for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Unpin for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Unpin for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Unpin for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Unpin for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl Unpin for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl Unpin for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl Unpin for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Unpin for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Unpin for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Unpin for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Unpin for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Unpin for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Unpin for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Unpin for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Unpin for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Unpin for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Unpin for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl Unpin for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl Unpin for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl Unpin for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl Unpin for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Unpin for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl Unpin for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Unpin for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl Unpin for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Unpin for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl Unpin for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl Unpin for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl Unpin for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl Unpin for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl Unpin for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Unpin for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Unpin for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Unpin for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; +implementors["db_core"] = [{"text":"impl Unpin for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> Unpin for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> Unpin for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> Unpin for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl Unpin for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl Unpin for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl Unpin for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> Unpin for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl Unpin for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> Unpin for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl Unpin for Secret","synthetic":true,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl Unpin for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl Unpin for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl Unpin for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl Unpin for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl Unpin for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl Unpin for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl Unpin for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl Unpin for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl Unpin for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl Unpin for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl Unpin for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl Unpin for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl Unpin for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl Unpin for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl Unpin for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl Unpin for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl Unpin for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl Unpin for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl Unpin for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl Unpin for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl Unpin for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl Unpin for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl Unpin for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl Unpin for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl Unpin for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl Unpin for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl Unpin for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl Unpin for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl Unpin for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl Unpin for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl Unpin for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl Unpin for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl Unpin for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl Unpin for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl Unpin for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl Unpin for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl Unpin for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl Unpin for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl Unpin for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl Unpin for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl Unpin for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl Unpin for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl Unpin for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl Unpin for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl Unpin for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl Unpin for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl Unpin for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl Unpin for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl Unpin for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl Unpin for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Unpin for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl Unpin for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl Unpin for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl Unpin for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Unpin for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl Unpin for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl Unpin for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl Unpin for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl Unpin for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl Unpin for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl Unpin for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl Unpin for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl Unpin for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl Unpin for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl Unpin for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl Unpin for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl Unpin for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl Unpin for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl Unpin for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl Unpin for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl Unpin for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl Unpin for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl Unpin for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl Unpin for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl Unpin for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl Unpin for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl Unpin for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl Unpin for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl Unpin for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl Unpin for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> Unpin for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Unpin for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Unpin for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Unpin for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Unpin for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl Unpin for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Unpin for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Unpin for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl Unpin for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Unpin for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> Unpin for SudoPage<'a, K, V> where
    K: Unpin,
    V: Unpin
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl Unpin for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl Unpin for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> Unpin for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Unpin for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Unpin for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Unpin for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl Unpin for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl Unpin for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> Unpin for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl Unpin for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl Unpin for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl Unpin for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl Unpin for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Unpin for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> Unpin for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl Unpin for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> Unpin for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Unpin for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl Unpin for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl Unpin for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl Unpin for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> Unpin for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Unpin for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Unpin for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Unpin for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl Unpin for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl Unpin for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Unpin for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl Unpin for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Unpin for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Unpin for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl Unpin for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl Unpin for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl Unpin for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl Unpin for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl Unpin for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl Unpin for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl Unpin for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl Unpin for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl Unpin for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl Unpin for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Unpin for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Unpin for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Unpin for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Unpin for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Unpin for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Unpin for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Unpin for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Unpin for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Unpin for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Unpin for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl Unpin for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl Unpin for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl Unpin for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl Unpin for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl Unpin for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl Unpin for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl Unpin for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl Unpin for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl Unpin for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Unpin for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl Unpin for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl Unpin for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl Unpin for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl Unpin for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl Unpin for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Unpin for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Unpin for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Unpin for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/ops/deref/trait.Deref.js b/implementors/core/ops/deref/trait.Deref.js index a1f352b8..e31badcd 100644 --- a/implementors/core/ops/deref/trait.Deref.js +++ b/implementors/core/ops/deref/trait.Deref.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["mcaptcha"] = [{"text":"impl Deref for INDEX","synthetic":false,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Deref for INDEX","synthetic":false,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Deref for INTERNAL_SERVER_ERROR_BODY","synthetic":false,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Deref for UNKNOWN_ERROR_BODY","synthetic":false,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Deref for ADVANCE_INDEX","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Deref for EASY_INDEX","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl Deref for INDEX","synthetic":false,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Deref for KEY","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Deref for GITHUB","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Deref for HOME","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Deref for SETTINGS_ICON","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Deref for CREDIT_CARD","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Deref for HELP_CIRCLE","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Deref for MESSAGE","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Deref for DOCS_ICON","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Deref for MCAPTCHA_TRANS_ICON","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Deref for BAR_CHART","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Deref for INDEX_PAGE","synthetic":false,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Deref for SETTINGS","synthetic":false,"types":["mcaptcha::SETTINGS"]},{"text":"impl Deref for FILES","synthetic":false,"types":["mcaptcha::FILES"]},{"text":"impl Deref for JS","synthetic":false,"types":["mcaptcha::JS"]},{"text":"impl Deref for CSS","synthetic":false,"types":["mcaptcha::CSS"]},{"text":"impl Deref for MOBILE_CSS","synthetic":false,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Deref for VERIFICATIN_WIDGET_JS","synthetic":false,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Deref for VERIFICATIN_WIDGET_CSS","synthetic":false,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Deref for SOURCE_FILES_OF_INSTANCE","synthetic":false,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; +implementors["mcaptcha"] = [{"text":"impl Deref for INDEX","synthetic":false,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl Deref for INDEX","synthetic":false,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl Deref for INTERNAL_SERVER_ERROR_BODY","synthetic":false,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl Deref for UNKNOWN_ERROR_BODY","synthetic":false,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl Deref for ADVANCE_INDEX","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl Deref for EASY_INDEX","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl Deref for INDEX","synthetic":false,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl Deref for KEY","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl Deref for GITHUB","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl Deref for HOME","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl Deref for SETTINGS_ICON","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl Deref for CREDIT_CARD","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl Deref for HELP_CIRCLE","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl Deref for MESSAGE","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl Deref for DOCS_ICON","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl Deref for MCAPTCHA_TRANS_ICON","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl Deref for BAR_CHART","synthetic":false,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl Deref for INDEX_PAGE","synthetic":false,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl Deref for SETTINGS","synthetic":false,"types":["mcaptcha::SETTINGS"]},{"text":"impl Deref for FILES","synthetic":false,"types":["mcaptcha::FILES"]},{"text":"impl Deref for JS","synthetic":false,"types":["mcaptcha::JS"]},{"text":"impl Deref for CSS","synthetic":false,"types":["mcaptcha::CSS"]},{"text":"impl Deref for MOBILE_CSS","synthetic":false,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl Deref for VERIFICATIN_WIDGET_JS","synthetic":false,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl Deref for VERIFICATIN_WIDGET_CSS","synthetic":false,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl Deref for SOURCE_FILES_OF_INSTANCE","synthetic":false,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js index e1a4ea6f..a771d561 100644 --- a/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.RefUnwindSafe.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl !RefUnwindSafe for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> RefUnwindSafe for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> RefUnwindSafe for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> RefUnwindSafe for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl RefUnwindSafe for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl RefUnwindSafe for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl RefUnwindSafe for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> RefUnwindSafe for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl RefUnwindSafe for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> RefUnwindSafe for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl RefUnwindSafe for Secret","synthetic":true,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl !RefUnwindSafe for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl !RefUnwindSafe for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl !RefUnwindSafe for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl !RefUnwindSafe for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl RefUnwindSafe for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl RefUnwindSafe for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl RefUnwindSafe for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl RefUnwindSafe for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl RefUnwindSafe for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl RefUnwindSafe for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl RefUnwindSafe for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl RefUnwindSafe for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl RefUnwindSafe for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl RefUnwindSafe for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl RefUnwindSafe for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl RefUnwindSafe for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl RefUnwindSafe for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl RefUnwindSafe for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl RefUnwindSafe for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl RefUnwindSafe for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl RefUnwindSafe for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl RefUnwindSafe for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl RefUnwindSafe for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl RefUnwindSafe for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl RefUnwindSafe for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl RefUnwindSafe for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl RefUnwindSafe for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl RefUnwindSafe for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl RefUnwindSafe for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl RefUnwindSafe for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl RefUnwindSafe for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl RefUnwindSafe for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl RefUnwindSafe for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl RefUnwindSafe for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl RefUnwindSafe for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl RefUnwindSafe for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl RefUnwindSafe for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl RefUnwindSafe for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl RefUnwindSafe for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl RefUnwindSafe for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl RefUnwindSafe for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl RefUnwindSafe for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl RefUnwindSafe for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl RefUnwindSafe for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl RefUnwindSafe for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl RefUnwindSafe for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl RefUnwindSafe for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl RefUnwindSafe for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl RefUnwindSafe for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl RefUnwindSafe for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl RefUnwindSafe for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl RefUnwindSafe for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl RefUnwindSafe for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl RefUnwindSafe for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl RefUnwindSafe for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl RefUnwindSafe for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl RefUnwindSafe for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl RefUnwindSafe for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl RefUnwindSafe for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl RefUnwindSafe for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl RefUnwindSafe for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl RefUnwindSafe for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl RefUnwindSafe for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl RefUnwindSafe for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl RefUnwindSafe for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl RefUnwindSafe for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl RefUnwindSafe for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl RefUnwindSafe for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl RefUnwindSafe for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl RefUnwindSafe for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl RefUnwindSafe for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl !RefUnwindSafe for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl !RefUnwindSafe for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl RefUnwindSafe for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl RefUnwindSafe for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl RefUnwindSafe for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl RefUnwindSafe for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl RefUnwindSafe for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl RefUnwindSafe for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl RefUnwindSafe for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> RefUnwindSafe for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl !RefUnwindSafe for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl !RefUnwindSafe for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl !RefUnwindSafe for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl RefUnwindSafe for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl !RefUnwindSafe for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl RefUnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl RefUnwindSafe for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl RefUnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl RefUnwindSafe for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> RefUnwindSafe for SudoPage<'a, K, V> where
    K: RefUnwindSafe,
    V: RefUnwindSafe
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl RefUnwindSafe for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl RefUnwindSafe for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> RefUnwindSafe for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl RefUnwindSafe for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl RefUnwindSafe for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl RefUnwindSafe for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl RefUnwindSafe for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl RefUnwindSafe for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> RefUnwindSafe for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl RefUnwindSafe for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl RefUnwindSafe for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl RefUnwindSafe for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl RefUnwindSafe for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl RefUnwindSafe for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> RefUnwindSafe for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl RefUnwindSafe for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> RefUnwindSafe for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl RefUnwindSafe for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl RefUnwindSafe for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl RefUnwindSafe for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl RefUnwindSafe for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> RefUnwindSafe for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl RefUnwindSafe for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl RefUnwindSafe for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl RefUnwindSafe for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl RefUnwindSafe for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl RefUnwindSafe for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl RefUnwindSafe for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl RefUnwindSafe for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl RefUnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl RefUnwindSafe for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl RefUnwindSafe for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl RefUnwindSafe for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl RefUnwindSafe for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl RefUnwindSafe for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl RefUnwindSafe for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl RefUnwindSafe for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl RefUnwindSafe for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl RefUnwindSafe for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl RefUnwindSafe for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl RefUnwindSafe for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl RefUnwindSafe for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl RefUnwindSafe for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl RefUnwindSafe for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl RefUnwindSafe for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl RefUnwindSafe for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl RefUnwindSafe for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl RefUnwindSafe for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl RefUnwindSafe for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl RefUnwindSafe for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl RefUnwindSafe for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl RefUnwindSafe for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl RefUnwindSafe for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl RefUnwindSafe for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl RefUnwindSafe for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl RefUnwindSafe for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl RefUnwindSafe for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl RefUnwindSafe for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl RefUnwindSafe for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl RefUnwindSafe for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl RefUnwindSafe for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl RefUnwindSafe for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl RefUnwindSafe for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl RefUnwindSafe for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl RefUnwindSafe for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl RefUnwindSafe for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; +implementors["db_core"] = [{"text":"impl !RefUnwindSafe for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> RefUnwindSafe for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> RefUnwindSafe for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> RefUnwindSafe for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl RefUnwindSafe for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl RefUnwindSafe for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl RefUnwindSafe for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> RefUnwindSafe for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl RefUnwindSafe for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> RefUnwindSafe for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl RefUnwindSafe for Secret","synthetic":true,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl !RefUnwindSafe for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl !RefUnwindSafe for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl !RefUnwindSafe for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl !RefUnwindSafe for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl RefUnwindSafe for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl RefUnwindSafe for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl RefUnwindSafe for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl RefUnwindSafe for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl RefUnwindSafe for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl RefUnwindSafe for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl RefUnwindSafe for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl RefUnwindSafe for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl RefUnwindSafe for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl RefUnwindSafe for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl RefUnwindSafe for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl RefUnwindSafe for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl RefUnwindSafe for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl RefUnwindSafe for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl RefUnwindSafe for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl RefUnwindSafe for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl RefUnwindSafe for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl RefUnwindSafe for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl RefUnwindSafe for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl RefUnwindSafe for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl RefUnwindSafe for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl RefUnwindSafe for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl RefUnwindSafe for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl RefUnwindSafe for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl RefUnwindSafe for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl RefUnwindSafe for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl RefUnwindSafe for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl RefUnwindSafe for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl RefUnwindSafe for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl RefUnwindSafe for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl RefUnwindSafe for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl RefUnwindSafe for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl RefUnwindSafe for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl RefUnwindSafe for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl RefUnwindSafe for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl RefUnwindSafe for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl RefUnwindSafe for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl RefUnwindSafe for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl RefUnwindSafe for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl RefUnwindSafe for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl RefUnwindSafe for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl RefUnwindSafe for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl RefUnwindSafe for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl RefUnwindSafe for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl RefUnwindSafe for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl RefUnwindSafe for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl RefUnwindSafe for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl RefUnwindSafe for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl RefUnwindSafe for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl RefUnwindSafe for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl RefUnwindSafe for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl RefUnwindSafe for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl RefUnwindSafe for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl RefUnwindSafe for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl RefUnwindSafe for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl RefUnwindSafe for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl RefUnwindSafe for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl RefUnwindSafe for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl RefUnwindSafe for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl RefUnwindSafe for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl RefUnwindSafe for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl RefUnwindSafe for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl RefUnwindSafe for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl RefUnwindSafe for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl RefUnwindSafe for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl RefUnwindSafe for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl RefUnwindSafe for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl !RefUnwindSafe for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl !RefUnwindSafe for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl RefUnwindSafe for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl RefUnwindSafe for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl RefUnwindSafe for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl RefUnwindSafe for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl RefUnwindSafe for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl RefUnwindSafe for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl RefUnwindSafe for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> RefUnwindSafe for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl !RefUnwindSafe for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl !RefUnwindSafe for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl !RefUnwindSafe for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl RefUnwindSafe for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl !RefUnwindSafe for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl RefUnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl RefUnwindSafe for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl RefUnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl RefUnwindSafe for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> RefUnwindSafe for SudoPage<'a, K, V> where
    K: RefUnwindSafe,
    V: RefUnwindSafe
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl RefUnwindSafe for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl RefUnwindSafe for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> RefUnwindSafe for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl RefUnwindSafe for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl RefUnwindSafe for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl RefUnwindSafe for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl RefUnwindSafe for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl RefUnwindSafe for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> RefUnwindSafe for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl RefUnwindSafe for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl RefUnwindSafe for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl RefUnwindSafe for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl RefUnwindSafe for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl RefUnwindSafe for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> RefUnwindSafe for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl RefUnwindSafe for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> RefUnwindSafe for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl RefUnwindSafe for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl RefUnwindSafe for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl RefUnwindSafe for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl RefUnwindSafe for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> RefUnwindSafe for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl RefUnwindSafe for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl RefUnwindSafe for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl RefUnwindSafe for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl RefUnwindSafe for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl RefUnwindSafe for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl RefUnwindSafe for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl RefUnwindSafe for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl RefUnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl RefUnwindSafe for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl RefUnwindSafe for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl RefUnwindSafe for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl RefUnwindSafe for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl RefUnwindSafe for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl RefUnwindSafe for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl RefUnwindSafe for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl RefUnwindSafe for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl RefUnwindSafe for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl RefUnwindSafe for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl RefUnwindSafe for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl RefUnwindSafe for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl RefUnwindSafe for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl RefUnwindSafe for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl RefUnwindSafe for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl RefUnwindSafe for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl RefUnwindSafe for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl RefUnwindSafe for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl RefUnwindSafe for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl RefUnwindSafe for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl RefUnwindSafe for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl RefUnwindSafe for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl RefUnwindSafe for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl RefUnwindSafe for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl RefUnwindSafe for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl RefUnwindSafe for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl RefUnwindSafe for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl RefUnwindSafe for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl RefUnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl RefUnwindSafe for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl RefUnwindSafe for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl RefUnwindSafe for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl RefUnwindSafe for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl RefUnwindSafe for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl RefUnwindSafe for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl RefUnwindSafe for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl RefUnwindSafe for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl RefUnwindSafe for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl RefUnwindSafe for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js index 25786cb2..23fe39eb 100644 --- a/implementors/core/panic/unwind_safe/trait.UnwindSafe.js +++ b/implementors/core/panic/unwind_safe/trait.UnwindSafe.js @@ -1,5 +1,5 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl !UnwindSafe for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> UnwindSafe for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> UnwindSafe for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> UnwindSafe for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl UnwindSafe for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl UnwindSafe for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl UnwindSafe for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> UnwindSafe for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl UnwindSafe for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> UnwindSafe for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl UnwindSafe for Secret","synthetic":true,"types":["db_core::Secret"]}]; -implementors["db_sqlx_postgres"] = [{"text":"impl !UnwindSafe for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl !UnwindSafe for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl !UnwindSafe for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl !UnwindSafe for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl UnwindSafe for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; -implementors["mcaptcha"] = [{"text":"impl UnwindSafe for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl UnwindSafe for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl UnwindSafe for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl UnwindSafe for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl UnwindSafe for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl UnwindSafe for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl UnwindSafe for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl UnwindSafe for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl UnwindSafe for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl UnwindSafe for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl UnwindSafe for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl UnwindSafe for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl UnwindSafe for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl UnwindSafe for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl UnwindSafe for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl UnwindSafe for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl UnwindSafe for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl UnwindSafe for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl UnwindSafe for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl UnwindSafe for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl UnwindSafe for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl UnwindSafe for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl UnwindSafe for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl UnwindSafe for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl UnwindSafe for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl UnwindSafe for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl UnwindSafe for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl UnwindSafe for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl UnwindSafe for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl UnwindSafe for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl UnwindSafe for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl UnwindSafe for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl UnwindSafe for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl UnwindSafe for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl UnwindSafe for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl UnwindSafe for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl UnwindSafe for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl UnwindSafe for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl UnwindSafe for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl UnwindSafe for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl UnwindSafe for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl UnwindSafe for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl UnwindSafe for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl UnwindSafe for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl UnwindSafe for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl UnwindSafe for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl UnwindSafe for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl UnwindSafe for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl UnwindSafe for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl UnwindSafe for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl UnwindSafe for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl UnwindSafe for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl UnwindSafe for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl UnwindSafe for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl UnwindSafe for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl UnwindSafe for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl UnwindSafe for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl UnwindSafe for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl UnwindSafe for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl UnwindSafe for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl UnwindSafe for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl UnwindSafe for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl UnwindSafe for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl UnwindSafe for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl UnwindSafe for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl UnwindSafe for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl !UnwindSafe for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl !UnwindSafe for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl UnwindSafe for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl UnwindSafe for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl UnwindSafe for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl UnwindSafe for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl UnwindSafe for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl UnwindSafe for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl UnwindSafe for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> UnwindSafe for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl !UnwindSafe for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl !UnwindSafe for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl !UnwindSafe for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl UnwindSafe for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl !UnwindSafe for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl UnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl UnwindSafe for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl UnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl UnwindSafe for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> UnwindSafe for SudoPage<'a, K, V> where
    K: UnwindSafe,
    V: UnwindSafe
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl UnwindSafe for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl UnwindSafe for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> UnwindSafe for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl UnwindSafe for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl UnwindSafe for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl UnwindSafe for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl UnwindSafe for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl UnwindSafe for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> UnwindSafe for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl UnwindSafe for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl UnwindSafe for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl UnwindSafe for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl UnwindSafe for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl UnwindSafe for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> UnwindSafe for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl UnwindSafe for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> UnwindSafe for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl UnwindSafe for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl UnwindSafe for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl UnwindSafe for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl UnwindSafe for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> UnwindSafe for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl UnwindSafe for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl UnwindSafe for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl UnwindSafe for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl UnwindSafe for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl UnwindSafe for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl UnwindSafe for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl UnwindSafe for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl UnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl UnwindSafe for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl UnwindSafe for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl UnwindSafe for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl UnwindSafe for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl UnwindSafe for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl UnwindSafe for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl UnwindSafe for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl UnwindSafe for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl UnwindSafe for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl UnwindSafe for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl UnwindSafe for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl UnwindSafe for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl UnwindSafe for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl UnwindSafe for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl UnwindSafe for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl UnwindSafe for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl UnwindSafe for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl UnwindSafe for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl UnwindSafe for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl UnwindSafe for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl UnwindSafe for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl UnwindSafe for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl UnwindSafe for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl UnwindSafe for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl UnwindSafe for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl UnwindSafe for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl UnwindSafe for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl UnwindSafe for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl UnwindSafe for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl UnwindSafe for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl UnwindSafe for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl UnwindSafe for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl UnwindSafe for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl UnwindSafe for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl UnwindSafe for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl UnwindSafe for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; +implementors["db_core"] = [{"text":"impl !UnwindSafe for DBError","synthetic":true,"types":["db_core::errors::DBError"]},{"text":"impl<'a> UnwindSafe for Register<'a>","synthetic":true,"types":["db_core::Register"]},{"text":"impl<'a> UnwindSafe for UpdateEmail<'a>","synthetic":true,"types":["db_core::UpdateEmail"]},{"text":"impl<'a> UnwindSafe for Login<'a>","synthetic":true,"types":["db_core::Login"]},{"text":"impl UnwindSafe for NameHash","synthetic":true,"types":["db_core::NameHash"]},{"text":"impl UnwindSafe for StatsUnixTimestamp","synthetic":true,"types":["db_core::StatsUnixTimestamp"]},{"text":"impl UnwindSafe for Notification","synthetic":true,"types":["db_core::Notification"]},{"text":"impl<'a> UnwindSafe for AddNotification<'a>","synthetic":true,"types":["db_core::AddNotification"]},{"text":"impl UnwindSafe for TrafficPattern","synthetic":true,"types":["db_core::TrafficPattern"]},{"text":"impl<'a> UnwindSafe for CreateCaptcha<'a>","synthetic":true,"types":["db_core::CreateCaptcha"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["db_core::Captcha"]},{"text":"impl UnwindSafe for Secret","synthetic":true,"types":["db_core::Secret"]}]; +implementors["db_sqlx_postgres"] = [{"text":"impl !UnwindSafe for Database","synthetic":true,"types":["db_sqlx_postgres::Database"]},{"text":"impl !UnwindSafe for Conn","synthetic":true,"types":["db_sqlx_postgres::Conn"]},{"text":"impl !UnwindSafe for ConnectionOptions","synthetic":true,"types":["db_sqlx_postgres::ConnectionOptions"]},{"text":"impl !UnwindSafe for Fresh","synthetic":true,"types":["db_sqlx_postgres::Fresh"]},{"text":"impl UnwindSafe for InnerNotification","synthetic":true,"types":["db_sqlx_postgres::InnerNotification"]}]; +implementors["mcaptcha"] = [{"text":"impl UnwindSafe for delete_account","synthetic":true,"types":["mcaptcha::api::v1::account::delete::delete_account"]},{"text":"impl UnwindSafe for Email","synthetic":true,"types":["mcaptcha::api::v1::account::email::Email"]},{"text":"impl UnwindSafe for email_exists","synthetic":true,"types":["mcaptcha::api::v1::account::email::email_exists"]},{"text":"impl UnwindSafe for set_email","synthetic":true,"types":["mcaptcha::api::v1::account::email::set_email"]},{"text":"impl UnwindSafe for ChangePasswordReqest","synthetic":true,"types":["mcaptcha::api::v1::account::password::ChangePasswordReqest"]},{"text":"impl UnwindSafe for UpdatePassword","synthetic":true,"types":["mcaptcha::api::v1::account::password::UpdatePassword"]},{"text":"impl UnwindSafe for update_user_password","synthetic":true,"types":["mcaptcha::api::v1::account::password::update_user_password"]},{"text":"impl UnwindSafe for get_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::get_secret"]},{"text":"impl UnwindSafe for update_user_secret","synthetic":true,"types":["mcaptcha::api::v1::account::secret::update_user_secret"]},{"text":"impl UnwindSafe for username_exists","synthetic":true,"types":["mcaptcha::api::v1::account::username::username_exists"]},{"text":"impl UnwindSafe for Username","synthetic":true,"types":["mcaptcha::api::v1::account::username::Username"]},{"text":"impl UnwindSafe for set_username","synthetic":true,"types":["mcaptcha::api::v1::account::username::set_username"]},{"text":"impl UnwindSafe for Account","synthetic":true,"types":["mcaptcha::api::v1::account::routes::Account"]},{"text":"impl UnwindSafe for AccountCheckPayload","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckPayload"]},{"text":"impl UnwindSafe for AccountCheckResp","synthetic":true,"types":["mcaptcha::api::v1::account::AccountCheckResp"]},{"text":"impl UnwindSafe for Auth","synthetic":true,"types":["mcaptcha::api::v1::auth::routes::Auth"]},{"text":"impl UnwindSafe for Register","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Register"]},{"text":"impl UnwindSafe for Login","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Login"]},{"text":"impl UnwindSafe for Password","synthetic":true,"types":["mcaptcha::api::v1::auth::runners::Password"]},{"text":"impl UnwindSafe for register","synthetic":true,"types":["mcaptcha::api::v1::auth::register"]},{"text":"impl UnwindSafe for login","synthetic":true,"types":["mcaptcha::api::v1::auth::login"]},{"text":"impl UnwindSafe for signout","synthetic":true,"types":["mcaptcha::api::v1::auth::signout"]},{"text":"impl UnwindSafe for CreateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::CreateCaptcha"]},{"text":"impl UnwindSafe for MCaptchaDetails","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::MCaptchaDetails"]},{"text":"impl UnwindSafe for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::create::create"]},{"text":"impl UnwindSafe for DeleteCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::DeleteCaptcha"]},{"text":"impl UnwindSafe for delete","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::delete::delete"]},{"text":"impl UnwindSafe for Easy","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::routes::Easy"]},{"text":"impl UnwindSafe for TrafficPatternRequest","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::TrafficPatternRequest"]},{"text":"impl UnwindSafe for create","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::create"]},{"text":"impl UnwindSafe for UpdateTrafficPattern","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::UpdateTrafficPattern"]},{"text":"impl UnwindSafe for update","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::easy::update"]},{"text":"impl UnwindSafe for get_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::get_captcha"]},{"text":"impl UnwindSafe for Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::Levels"]},{"text":"impl UnwindSafe for I32Levels","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::get::I32Levels"]},{"text":"impl UnwindSafe for Stats","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::routes::Stats"]},{"text":"impl UnwindSafe for StatsPayload","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::StatsPayload"]},{"text":"impl UnwindSafe for get","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::stats::get"]},{"text":"impl UnwindSafe for update_key","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_key"]},{"text":"impl UnwindSafe for UpdateCaptcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::UpdateCaptcha"]},{"text":"impl UnwindSafe for update_captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::update::update_captcha"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["mcaptcha::api::v1::mcaptcha::routes::Captcha"]},{"text":"impl UnwindSafe for Meta","synthetic":true,"types":["mcaptcha::api::v1::meta::routes::Meta"]},{"text":"impl UnwindSafe for BuildDetails","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetails"]},{"text":"impl UnwindSafe for BuildDetailsBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilder"]},{"text":"impl UnwindSafe for BuildDetailsBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl UnwindSafe for build_details","synthetic":true,"types":["mcaptcha::api::v1::meta::build_details"]},{"text":"impl UnwindSafe for Health","synthetic":true,"types":["mcaptcha::api::v1::meta::Health"]},{"text":"impl UnwindSafe for HealthBuilder","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilder"]},{"text":"impl UnwindSafe for HealthBuilderError","synthetic":true,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl UnwindSafe for health","synthetic":true,"types":["mcaptcha::api::v1::meta::health"]},{"text":"impl UnwindSafe for AddNotificationRequest","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::AddNotificationRequest"]},{"text":"impl UnwindSafe for add_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::add::add_notification"]},{"text":"impl UnwindSafe for NotificationResp","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::NotificationResp"]},{"text":"impl UnwindSafe for get_notification","synthetic":true,"types":["mcaptcha::api::v1::notifications::get::get_notification"]},{"text":"impl UnwindSafe for MarkReadReq","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::MarkReadReq"]},{"text":"impl UnwindSafe for mark_read","synthetic":true,"types":["mcaptcha::api::v1::notifications::mark_read::mark_read"]},{"text":"impl UnwindSafe for Notifications","synthetic":true,"types":["mcaptcha::api::v1::notifications::routes::Notifications"]},{"text":"impl UnwindSafe for GetConfigPayload","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::GetConfigPayload"]},{"text":"impl UnwindSafe for get_config","synthetic":true,"types":["mcaptcha::api::v1::pow::get_config::get_config"]},{"text":"impl UnwindSafe for ValidationToken","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::ValidationToken"]},{"text":"impl UnwindSafe for verify_pow","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_pow::verify_pow"]},{"text":"impl UnwindSafe for CaptchaValidateResp","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::CaptchaValidateResp"]},{"text":"impl UnwindSafe for validate_captcha_token","synthetic":true,"types":["mcaptcha::api::v1::pow::verify_token::validate_captcha_token"]},{"text":"impl UnwindSafe for PoW","synthetic":true,"types":["mcaptcha::api::v1::pow::routes::PoW"]},{"text":"impl UnwindSafe for Routes","synthetic":true,"types":["mcaptcha::api::v1::routes::Routes"]},{"text":"impl UnwindSafe for RedirectQuery","synthetic":true,"types":["mcaptcha::api::v1::RedirectQuery"]},{"text":"impl !UnwindSafe for SystemGroup","synthetic":true,"types":["mcaptcha::data::SystemGroup"]},{"text":"impl !UnwindSafe for Data","synthetic":true,"types":["mcaptcha::data::Data"]},{"text":"impl UnwindSafe for Date","synthetic":true,"types":["mcaptcha::date::Date"]},{"text":"impl UnwindSafe for DemoUser","synthetic":true,"types":["mcaptcha::demo::DemoUser"]},{"text":"impl UnwindSafe for Docs","synthetic":true,"types":["mcaptcha::docs::routes::Docs"]},{"text":"impl UnwindSafe for Asset","synthetic":true,"types":["mcaptcha::docs::Asset"]},{"text":"impl UnwindSafe for dist","synthetic":true,"types":["mcaptcha::docs::dist"]},{"text":"impl UnwindSafe for spec","synthetic":true,"types":["mcaptcha::docs::spec"]},{"text":"impl UnwindSafe for index","synthetic":true,"types":["mcaptcha::docs::index"]},{"text":"impl<'a> UnwindSafe for IndexPage<'a>","synthetic":true,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl !UnwindSafe for SmtpErrorWrapper","synthetic":true,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl !UnwindSafe for DBErrorWrapper","synthetic":true,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl !UnwindSafe for ServiceError","synthetic":true,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl UnwindSafe for ErrorToResponse","synthetic":true,"types":["mcaptcha::errors::ErrorToResponse"]},{"text":"impl !UnwindSafe for PageError","synthetic":true,"types":["mcaptcha::errors::PageError"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl UnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::login::INDEX"]},{"text":"impl UnwindSafe for login","synthetic":true,"types":["mcaptcha::pages::auth::login::login"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl UnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::auth::register::INDEX"]},{"text":"impl UnwindSafe for join","synthetic":true,"types":["mcaptcha::pages::auth::register::join"]},{"text":"impl<'a, K, V> UnwindSafe for SudoPage<'a, K, V> where
    K: UnwindSafe,
    V: UnwindSafe
","synthetic":true,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl UnwindSafe for Auth","synthetic":true,"types":["mcaptcha::pages::auth::routes::Auth"]},{"text":"impl UnwindSafe for Errors","synthetic":true,"types":["mcaptcha::pages::errors::routes::Errors"]},{"text":"impl<'a> UnwindSafe for ErrorPage<'a>","synthetic":true,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl UnwindSafe for INTERNAL_SERVER_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::INTERNAL_SERVER_ERROR_BODY"]},{"text":"impl UnwindSafe for UNKNOWN_ERROR_BODY","synthetic":true,"types":["mcaptcha::pages::errors::UNKNOWN_ERROR_BODY"]},{"text":"impl UnwindSafe for error","synthetic":true,"types":["mcaptcha::pages::errors::error"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl UnwindSafe for Notification","synthetic":true,"types":["mcaptcha::pages::panel::notifications::Notification"]},{"text":"impl UnwindSafe for notifications","synthetic":true,"types":["mcaptcha::pages::panel::notifications::notifications"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::routes::Settings"]},{"text":"impl<'a> UnwindSafe for IndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl UnwindSafe for settings","synthetic":true,"types":["mcaptcha::pages::panel::settings::settings"]},{"text":"impl UnwindSafe for delete_account","synthetic":true,"types":["mcaptcha::pages::panel::settings::delete_account"]},{"text":"impl UnwindSafe for update_secret","synthetic":true,"types":["mcaptcha::pages::panel::settings::update_secret"]},{"text":"impl UnwindSafe for ADVANCE_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::ADVANCE_INDEX"]},{"text":"impl UnwindSafe for EASY_INDEX","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EASY_INDEX"]},{"text":"impl<'a> UnwindSafe for AdvanceIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl UnwindSafe for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::advance"]},{"text":"impl<'a> UnwindSafe for EasyIndexPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl UnwindSafe for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::add::easy"]},{"text":"impl UnwindSafe for delete_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::delete::delete_sitekey"]},{"text":"impl UnwindSafe for AdvanceEditPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl UnwindSafe for advance","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::advance"]},{"text":"impl<'a> UnwindSafe for EasyEditPage<'a>","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl UnwindSafe for easy","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::edit::easy"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl UnwindSafe for list_sitekeys","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::list::list_sitekeys"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl UnwindSafe for view_sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::view::view_sitekey"]},{"text":"impl UnwindSafe for Sitekey","synthetic":true,"types":["mcaptcha::pages::panel::sitekey::routes::Sitekey"]},{"text":"impl UnwindSafe for Panel","synthetic":true,"types":["mcaptcha::pages::panel::routes::Panel"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl UnwindSafe for panel","synthetic":true,"types":["mcaptcha::pages::panel::panel"]},{"text":"impl UnwindSafe for Routes","synthetic":true,"types":["mcaptcha::pages::routes::Routes"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl UnwindSafe for INDEX","synthetic":true,"types":["mcaptcha::pages::sitemap::INDEX"]},{"text":"impl UnwindSafe for sitemap","synthetic":true,"types":["mcaptcha::pages::sitemap::sitemap"]},{"text":"impl UnwindSafe for Server","synthetic":true,"types":["mcaptcha::settings::Server"]},{"text":"impl UnwindSafe for Captcha","synthetic":true,"types":["mcaptcha::settings::Captcha"]},{"text":"impl UnwindSafe for DefaultDifficultyStrategy","synthetic":true,"types":["mcaptcha::settings::DefaultDifficultyStrategy"]},{"text":"impl UnwindSafe for Smtp","synthetic":true,"types":["mcaptcha::settings::Smtp"]},{"text":"impl UnwindSafe for DatabaseBuilder","synthetic":true,"types":["mcaptcha::settings::DatabaseBuilder"]},{"text":"impl UnwindSafe for Database","synthetic":true,"types":["mcaptcha::settings::Database"]},{"text":"impl UnwindSafe for Redis","synthetic":true,"types":["mcaptcha::settings::Redis"]},{"text":"impl UnwindSafe for Settings","synthetic":true,"types":["mcaptcha::settings::Settings"]},{"text":"impl UnwindSafe for FileMap","synthetic":true,"types":["mcaptcha::static_assets::filemap::FileMap"]},{"text":"impl UnwindSafe for KEY","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::KEY"]},{"text":"impl UnwindSafe for GITHUB","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::GITHUB"]},{"text":"impl UnwindSafe for HOME","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HOME"]},{"text":"impl UnwindSafe for SETTINGS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::SETTINGS_ICON"]},{"text":"impl UnwindSafe for CREDIT_CARD","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::CREDIT_CARD"]},{"text":"impl UnwindSafe for HELP_CIRCLE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::HELP_CIRCLE"]},{"text":"impl UnwindSafe for MESSAGE","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MESSAGE"]},{"text":"impl UnwindSafe for DOCS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::DOCS_ICON"]},{"text":"impl UnwindSafe for MCAPTCHA_TRANS_ICON","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::MCAPTCHA_TRANS_ICON"]},{"text":"impl UnwindSafe for BAR_CHART","synthetic":true,"types":["mcaptcha::static_assets::static_files::assets::BAR_CHART"]},{"text":"impl UnwindSafe for Asset","synthetic":true,"types":["mcaptcha::static_assets::static_files::Asset"]},{"text":"impl UnwindSafe for static_files","synthetic":true,"types":["mcaptcha::static_assets::static_files::static_files"]},{"text":"impl UnwindSafe for Favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::Favicons"]},{"text":"impl UnwindSafe for favicons","synthetic":true,"types":["mcaptcha::static_assets::static_files::favicons"]},{"text":"impl UnwindSafe for CaptchaStats","synthetic":true,"types":["mcaptcha::stats::CaptchaStats"]},{"text":"impl UnwindSafe for Real","synthetic":true,"types":["mcaptcha::stats::Real"]},{"text":"impl UnwindSafe for Dummy","synthetic":true,"types":["mcaptcha::stats::Dummy"]},{"text":"impl UnwindSafe for Widget","synthetic":true,"types":["mcaptcha::widget::routes::Widget"]},{"text":"impl UnwindSafe for IndexPage","synthetic":true,"types":["mcaptcha::widget::IndexPage"]},{"text":"impl UnwindSafe for INDEX_PAGE","synthetic":true,"types":["mcaptcha::widget::INDEX_PAGE"]},{"text":"impl UnwindSafe for show_widget","synthetic":true,"types":["mcaptcha::widget::show_widget"]},{"text":"impl UnwindSafe for SETTINGS","synthetic":true,"types":["mcaptcha::SETTINGS"]},{"text":"impl UnwindSafe for FILES","synthetic":true,"types":["mcaptcha::FILES"]},{"text":"impl UnwindSafe for JS","synthetic":true,"types":["mcaptcha::JS"]},{"text":"impl UnwindSafe for CSS","synthetic":true,"types":["mcaptcha::CSS"]},{"text":"impl UnwindSafe for MOBILE_CSS","synthetic":true,"types":["mcaptcha::MOBILE_CSS"]},{"text":"impl UnwindSafe for VERIFICATIN_WIDGET_JS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_JS"]},{"text":"impl UnwindSafe for VERIFICATIN_WIDGET_CSS","synthetic":true,"types":["mcaptcha::VERIFICATIN_WIDGET_CSS"]},{"text":"impl UnwindSafe for SOURCE_FILES_OF_INSTANCE","synthetic":true,"types":["mcaptcha::SOURCE_FILES_OF_INSTANCE"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/db_sqlx_postgres/prelude/trait.Connect.js b/implementors/db_core/ops/trait.Connect.js similarity index 100% rename from implementors/db_sqlx_postgres/prelude/trait.Connect.js rename to implementors/db_core/ops/trait.Connect.js diff --git a/implementors/db_sqlx_postgres/prelude/trait.Migrate.js b/implementors/db_core/ops/trait.Migrate.js similarity index 100% rename from implementors/db_sqlx_postgres/prelude/trait.Migrate.js rename to implementors/db_core/ops/trait.Migrate.js diff --git a/implementors/db_core/trait.CloneSPDatabase.js b/implementors/db_core/trait.CloneSPDatabase.js index 6ada0f84..61fdad69 100644 --- a/implementors/db_core/trait.CloneSPDatabase.js +++ b/implementors/db_core/trait.CloneSPDatabase.js @@ -1,3 +1,4 @@ (function() {var implementors = {}; implementors["db_core"] = []; +implementors["db_sqlx_postgres"] = []; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/db_sqlx_postgres/prelude/trait.MCDatabase.js b/implementors/db_core/trait.MCDatabase.js similarity index 100% rename from implementors/db_sqlx_postgres/prelude/trait.MCDatabase.js rename to implementors/db_core/trait.MCDatabase.js diff --git a/implementors/db_sqlx_postgres/prelude/trait.CloneSPDatabase.js b/implementors/db_sqlx_postgres/prelude/trait.CloneSPDatabase.js deleted file mode 100644 index 3be0b35a..00000000 --- a/implementors/db_sqlx_postgres/prelude/trait.CloneSPDatabase.js +++ /dev/null @@ -1,3 +0,0 @@ -(function() {var implementors = {}; -implementors["db_sqlx_postgres"] = []; -if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/sailfish/private/trait.Sealed.js b/implementors/sailfish/private/trait.Sealed.js index 73ca426f..4eed437b 100644 --- a/implementors/sailfish/private/trait.Sealed.js +++ b/implementors/sailfish/private/trait.Sealed.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["mcaptcha"] = [{"text":"impl<'a> Sealed for IndexPage<'a>","synthetic":false,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl<'a, K, V> Sealed for SudoPage<'a, K, V> where
    K: Display + Render,
    V: Display + Render, 
","synthetic":false,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl<'a> Sealed for ErrorPage<'a>","synthetic":false,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl<'a> Sealed for IndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl<'a> Sealed for AdvanceIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl<'a> Sealed for EasyIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Sealed for AdvanceEditPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl<'a> Sealed for EasyEditPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::widget::IndexPage"]}]; +implementors["mcaptcha"] = [{"text":"impl<'a> Sealed for IndexPage<'a>","synthetic":false,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl<'a, K, V> Sealed for SudoPage<'a, K, V> where
    K: Display + Render,
    V: Display + Render, 
","synthetic":false,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl<'a> Sealed for ErrorPage<'a>","synthetic":false,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl<'a> Sealed for IndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl<'a> Sealed for AdvanceIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl<'a> Sealed for EasyIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl Sealed for AdvanceEditPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl<'a> Sealed for EasyEditPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl Sealed for IndexPage","synthetic":false,"types":["mcaptcha::widget::IndexPage"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/sailfish/trait.TemplateOnce.js b/implementors/sailfish/trait.TemplateOnce.js index 8dd20876..ab0ec27b 100644 --- a/implementors/sailfish/trait.TemplateOnce.js +++ b/implementors/sailfish/trait.TemplateOnce.js @@ -1,3 +1,3 @@ (function() {var implementors = {}; -implementors["mcaptcha"] = [{"text":"impl<'a> TemplateOnce for IndexPage<'a>","synthetic":false,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl<'a, K, V> TemplateOnce for SudoPage<'a, K, V> where
    K: Display + Render,
    V: Display + Render, 
","synthetic":false,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl<'a> TemplateOnce for ErrorPage<'a>","synthetic":false,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl<'a> TemplateOnce for IndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl<'a> TemplateOnce for AdvanceIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl<'a> TemplateOnce for EasyIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl TemplateOnce for AdvanceEditPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl<'a> TemplateOnce for EasyEditPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::widget::IndexPage"]}]; +implementors["mcaptcha"] = [{"text":"impl<'a> TemplateOnce for IndexPage<'a>","synthetic":false,"types":["mcaptcha::email::verification::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::login::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::auth::register::IndexPage"]},{"text":"impl<'a, K, V> TemplateOnce for SudoPage<'a, K, V> where
    K: Display + Render,
    V: Display + Render, 
","synthetic":false,"types":["mcaptcha::pages::auth::sudo::SudoPage"]},{"text":"impl<'a> TemplateOnce for ErrorPage<'a>","synthetic":false,"types":["mcaptcha::pages::errors::ErrorPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::notifications::IndexPage"]},{"text":"impl<'a> TemplateOnce for IndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::settings::IndexPage"]},{"text":"impl<'a> TemplateOnce for AdvanceIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::AdvanceIndexPage"]},{"text":"impl<'a> TemplateOnce for EasyIndexPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::add::EasyIndexPage"]},{"text":"impl TemplateOnce for AdvanceEditPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::AdvanceEditPage"]},{"text":"impl<'a> TemplateOnce for EasyEditPage<'a>","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::edit::EasyEditPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::list::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::sitekey::view::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::panel::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::pages::sitemap::IndexPage"]},{"text":"impl TemplateOnce for IndexPage","synthetic":false,"types":["mcaptcha::widget::IndexPage"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/implementors/std/error/trait.Error.js b/implementors/std/error/trait.Error.js index 05f2bcfb..44b245f3 100644 --- a/implementors/std/error/trait.Error.js +++ b/implementors/std/error/trait.Error.js @@ -1,4 +1,4 @@ (function() {var implementors = {}; -implementors["db_core"] = [{"text":"impl Error for DBError","synthetic":false,"types":["db_core::errors::DBError"]}]; -implementors["mcaptcha"] = [{"text":"impl Error for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Error for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Error for SmtpErrorWrapper","synthetic":false,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Error for DBErrorWrapper","synthetic":false,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Error for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Error for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]}]; +implementors["db_core"] = [{"text":"impl Error for DBError","synthetic":false,"types":["db_core::errors::DBError"]}]; +implementors["mcaptcha"] = [{"text":"impl Error for BuildDetailsBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::BuildDetailsBuilderError"]},{"text":"impl Error for HealthBuilderError","synthetic":false,"types":["mcaptcha::api::v1::meta::HealthBuilderError"]},{"text":"impl Error for SmtpErrorWrapper","synthetic":false,"types":["mcaptcha::errors::SmtpErrorWrapper"]},{"text":"impl Error for DBErrorWrapper","synthetic":false,"types":["mcaptcha::errors::DBErrorWrapper"]},{"text":"impl Error for ServiceError","synthetic":false,"types":["mcaptcha::errors::ServiceError"]},{"text":"impl Error for PageError","synthetic":false,"types":["mcaptcha::errors::PageError"]}]; if (window.register_implementors) {window.register_implementors(implementors);} else {window.pending_implementors = implementors;}})() \ No newline at end of file diff --git a/light.css b/light.css index 289f10cf..90de68d6 100644 --- a/light.css +++ b/light.css @@ -1 +1 @@ - body{background-color:white;color:black;}h1,h2,h3,h4{color:black;}h1.fqn{border-bottom-color:#DDDDDD;}h2,h3,h4{border-bottom-color:#DDDDDD;}.in-band{background-color:white;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#F5F5F5;}pre,.rustdoc.source .example-wrap{background-color:#F5F5F5;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#F5F5F5;}*{scrollbar-color:rgba(36,37,39,0.6) #e6e6e6;}.sidebar{scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;}.rust-logo{}::-webkit-scrollbar-track{background-color:#ecebeb;}::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar::-webkit-scrollbar-track{background-color:#dcdcdc;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar .current,.sidebar a:hover{background-color:#fff;}.source .sidebar{background-color:#f1f1f1;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#FDFFD3 !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#ddd;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#4E4C4C;}.search-results a:hover{background-color:#ddd;}.search-results a:focus{color:#000 !important;background-color:#ccc;}.search-results a:focus span{color:#000 !important;}a.result-trait:focus{background-color:#c7b6ff;}a.result-traitalias:focus{background-color:#c7b6ff;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-enum:focus{background-color:#e7b1a0;}a.result-struct:focus{background-color:#e7b1a0;}a.result-union:focus{background-color:#e7b1a0;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#c6afb3;}a.result-type:focus{background-color:#e7b1a0;}a.result-associatedtype:focus{background-color:#afc6e4;}a.result-foreigntype:focus{background-color:#e7b1a0;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#8ce488;}a.result-constant:focus,a.result-static:focus{background-color:#afc6e4;}a.result-primitive:focus{background-color:#e7b1a0;}a.result-keyword:focus{background-color:#afc6e4;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#AD378A;}.content span.struct,.content a.struct,.block a.current.struct{color:#AD378A;}.content span.type,.content a.type,.block a.current.type{color:#AD378A;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#3873AD;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#3873AD;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#068000;}.content span.union,.content a.union,.block a.current.union{color:#AD378A;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#3873AD;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#AD378A;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#3873AD;}.content span.trait,.content a.trait,.block a.current.trait{color:#6E4FC9;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#5137AD;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#AD7C37;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#3873AD;}.sidebar a{color:#356da4;}.sidebar a.current.enum{color:#a63283;}.sidebar a.current.struct{color:#a63283;}.sidebar a.current.type{color:#a63283;}.sidebar a.current.associatedtype{color:#356da4;}.sidebar a.current.foreigntype{color:#356da4;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#067901;}.sidebar a.current.union{color:#a63283;}.sidebar a.current.constant .sidebar a.current.static{color:#356da4;}.sidebar a.current.primitive{color:#a63283;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#356da4;}.sidebar a.current.trait{color:#6849c3;}.sidebar a.current.traitalias{color:#4b349e;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#a67736;}.sidebar a.current.keyword{color:#356da4;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#3873AD;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#000;}.search-results a{color:initial;}a.test-arrow{color:#f5f5f5;}body.source .example-wrap pre.rust a{background:#eee;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}#crate-search,.search-input{color:#555;background-color:white;border-color:#e0e0e0;}.search-input:focus{border-color:#66afe9;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;}.stab.portability>code{background:none;}#help>div{background:#e9e9e9;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:black;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#8959A8;}pre.rust .kw-2,pre.rust .prelude-ty{color:#4271AE;}pre.rust .number,pre.rust .string{color:#718C00;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#C82829;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#B76514;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#c7c7c7;}a.test-arrow{background-color:rgb(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background:#FDFFD3;border-right:3px solid #AD7C37;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.5);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.5);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#3873AD;}.tooltip::after{background-color:#000;color:#fff;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}.notable-traits-tooltiptext .notable{border-bottom-color:#DDDDDD;}#titles>button:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>button:hover,#titles>button.selected{background-color:#ffffff;border-top-color:#0089ff;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#F5F5F5;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#F5F5F5;border-right-color:#000;}#sidebar-filler{background-color:#F5F5F5;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background-color:#fff;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#717171;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(35%);}#theme-choices{border-color:#ccc;background-color:#fff;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#eee;}@media (max-width:700px){#theme-picker{background:#fff;}}.search-results .result-name span.alias{color:#000;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#F5F5F5;}#sidebar-toggle:hover{background-color:#E0E0E0;}#source-sidebar{background-color:#F5F5F5;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#E0E0E0;}div.files>.selected{background-color:#fff;}.setting-line>.title{border-bottom-color:#D5D5D5;} \ No newline at end of file + body{background-color:white;color:black;}h1,h2,h3,h4{color:black;}h1.fqn{border-bottom-color:#DDDDDD;}h2,h3,h4{border-bottom-color:#DDDDDD;}.in-band{background-color:white;}.invisible{background:rgba(0,0,0,0);}.docblock code,.docblock-short code{background-color:#F5F5F5;}pre,.rustdoc.source .example-wrap{background-color:#F5F5F5;}.sidebar,.mobile-topbar,.sidebar-menu-toggle{background-color:#F5F5F5;}*{scrollbar-color:rgba(36,37,39,0.6) #e6e6e6;}.sidebar{scrollbar-color:rgba(36,37,39,0.6) #d9d9d9;}.rust-logo{}::-webkit-scrollbar-track{background-color:#ecebeb;}::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar::-webkit-scrollbar-track{background-color:#dcdcdc;}.sidebar::-webkit-scrollbar-thumb{background-color:rgba(36,37,39,0.6);}.sidebar .current,.sidebar a:hover{background-color:#fff;}.source .sidebar{background-color:#f1f1f1;}.line-numbers span{color:#c67e2d;}.line-numbers .line-highlighted{background-color:#FDFFD3 !important;}.docblock h1,.docblock h2,.docblock h3,.docblock h4,.docblock h5,.docblock h6{border-bottom-color:#ddd;}.docblock table td,.docblock table th{border-color:#ddd;}.content .method .where,.content .fn .where,.content .where.fmt-newline{color:#4E4C4C;}.search-results a:hover{background-color:#ddd;}.search-results a:focus{color:#000 !important;background-color:#ccc;}.search-results a:focus span{color:#000 !important;}a.result-trait:focus{background-color:#c7b6ff;}a.result-traitalias:focus{background-color:#c7b6ff;}a.result-mod:focus,a.result-externcrate:focus{background-color:#afc6e4;}a.result-enum:focus{background-color:#e7b1a0;}a.result-struct:focus{background-color:#e7b1a0;}a.result-union:focus{background-color:#e7b1a0;}a.result-fn:focus,a.result-method:focus,a.result-tymethod:focus{background-color:#c6afb3;}a.result-type:focus{background-color:#e7b1a0;}a.result-associatedtype:focus{background-color:#afc6e4;}a.result-foreigntype:focus{background-color:#e7b1a0;}a.result-attr:focus,a.result-derive:focus,a.result-macro:focus{background-color:#8ce488;}a.result-constant:focus,a.result-static:focus{background-color:#afc6e4;}a.result-primitive:focus{background-color:#e7b1a0;}a.result-keyword:focus{background-color:#afc6e4;}.content .item-info::before{color:#ccc;}.content span.enum,.content a.enum,.block a.current.enum{color:#AD378A;}.content span.struct,.content a.struct,.block a.current.struct{color:#AD378A;}.content span.type,.content a.type,.block a.current.type{color:#AD378A;}.content span.foreigntype,.content a.foreigntype,.block a.current.foreigntype{color:#3873AD;}.content span.associatedtype,.content a.associatedtype,.block a.current.associatedtype{color:#3873AD;}.content span.attr,.content a.attr,.block a.current.attr,.content span.derive,.content a.derive,.block a.current.derive,.content span.macro,.content a.macro,.block a.current.macro{color:#068000;}.content span.union,.content a.union,.block a.current.union{color:#AD378A;}.content span.constant,.content a.constant,.block a.current.constant,.content span.static,.content a.static,.block a.current.static{color:#3873AD;}.content span.primitive,.content a.primitive,.block a.current.primitive{color:#AD378A;}.content span.externcrate,.content span.mod,.content a.mod,.block a.current.mod{color:#3873AD;}.content span.trait,.content a.trait,.block a.current.trait{color:#6E4FC9;}.content span.traitalias,.content a.traitalias,.block a.current.traitalias{color:#5137AD;}.content span.fn,.content a.fn,.block a.current.fn,.content span.method,.content a.method,.block a.current.method,.content span.tymethod,.content a.tymethod,.block a.current.tymethod,.content .fnname{color:#AD7C37;}.content span.keyword,.content a.keyword,.block a.current.keyword{color:#3873AD;}.sidebar a{color:#356da4;}.sidebar a.current.enum{color:#a63283;}.sidebar a.current.struct{color:#a63283;}.sidebar a.current.type{color:#a63283;}.sidebar a.current.associatedtype{color:#356da4;}.sidebar a.current.foreigntype{color:#356da4;}.sidebar a.current.attr,.sidebar a.current.derive,.sidebar a.current.macro{color:#067901;}.sidebar a.current.union{color:#a63283;}.sidebar a.current.constant .sidebar a.current.static{color:#356da4;}.sidebar a.current.primitive{color:#a63283;}.sidebar a.current.externcrate .sidebar a.current.mod{color:#356da4;}.sidebar a.current.trait{color:#6849c3;}.sidebar a.current.traitalias{color:#4b349e;}.sidebar a.current.fn,.sidebar a.current.method,.sidebar a.current.tymethod{color:#a67736;}.sidebar a.current.keyword{color:#356da4;}nav.main .current{border-top-color:#000;border-bottom-color:#000;}nav.main .separator{border:1px solid #000;}a{color:#3873AD;}a#toggle-all-docs,a.anchor,.small-section-header a,#source-sidebar a,pre.rust a,.sidebar h2 a,.sidebar h3 a,.mobile-topbar h2 a,.in-band a{color:#000;}.search-results a{color:initial;}a.test-arrow{color:#f5f5f5;}body.source .example-wrap pre.rust a{background:#eee;}details.rustdoc-toggle>summary.hideme>span,details.rustdoc-toggle>summary::before,details.undocumented>summary::before{color:#999;}#crate-search,.search-input{color:#555;background-color:white;border-color:#e0e0e0;}.search-input:focus{border-color:#66afe9;}.module-item .stab,.import-item .stab{color:#000;}.stab.unstable{background:#FFF5D6;border-color:#FFC600;}.stab.deprecated{background:#ffc4c4;border-color:#db7b7b;}.stab.portability{background:#F3DFFF;border-color:#b07bdb;}.stab.portability>code{background:none;}#help>div{background:#e9e9e9;border-color:#bfbfbf;}#help span.bottom,#help span.top{border-color:#bfbfbf;}.rightside,.out-of-band{color:grey;}.result-name .primitive>i,.result-name .keyword>i{color:black;}.line-numbers :target{background-color:transparent;}pre.rust .kw{color:#8959A8;}pre.rust .kw-2,pre.rust .prelude-ty{color:#4271AE;}pre.rust .number,pre.rust .string{color:#718C00;}pre.rust .self,pre.rust .bool-val,pre.rust .prelude-val,pre.rust .attribute,pre.rust .attribute .ident{color:#C82829;}pre.rust .comment{color:#8E908C;}pre.rust .doccomment{color:#4D4D4C;}pre.rust .macro,pre.rust .macro-nonterminal{color:#3E999F;}pre.rust .lifetime{color:#B76514;}pre.rust .question-mark{color:#ff9011;}.example-wrap>pre.line-number{border-color:#c7c7c7;}a.test-arrow{background-color:rgb(78,139,202,0.2);}a.test-arrow:hover{background-color:#4e8bca;}.toggle-label,.code-attribute{color:#999;}:target{background:#FDFFD3;border-right:3px solid #AD7C37;}pre.compile_fail{border-left:2px solid rgba(255,0,0,.5);}pre.compile_fail:hover,.information:hover+pre.compile_fail{border-left:2px solid #f00;}pre.should_panic{border-left:2px solid rgba(255,0,0,.5);}pre.should_panic:hover,.information:hover+pre.should_panic{border-left:2px solid #f00;}pre.ignore{border-left:2px solid rgba(255,142,0,.6);}pre.ignore:hover,.information:hover+pre.ignore{border-left:2px solid #ff9200;}.tooltip.compile_fail{color:rgba(255,0,0,.5);}.information>.compile_fail:hover{color:#f00;}.tooltip.should_panic{color:rgba(255,0,0,.5);}.information>.should_panic:hover{color:#f00;}.tooltip.ignore{color:rgba(255,142,0,.6);}.information>.ignore:hover{color:#ff9200;}.search-failed a{color:#3873AD;}.tooltip::after{background-color:#000;color:#fff;}.tooltip::before{border-color:transparent black transparent transparent;}.notable-traits-tooltiptext{background-color:#eee;border-color:#999;}.notable-traits-tooltiptext .notable{border-bottom-color:#DDDDDD;}#titles>button:not(.selected){background-color:#e6e6e6;border-top-color:#e6e6e6;}#titles>button:hover,#titles>button.selected{background-color:#ffffff;border-top-color:#0089ff;}#titles>button>div.count{color:#888;}@media (max-width:700px){.sidebar-menu{background-color:#F5F5F5;border-bottom-color:#e0e0e0;border-right-color:#e0e0e0;}.sidebar-elems{background-color:#F5F5F5;border-right-color:#000;}#sidebar-filler{background-color:#F5F5F5;border-bottom-color:#e0e0e0;}}kbd{color:#000;background-color:#fafbfc;border-color:#d1d5da;border-bottom-color:#c6cbd1;box-shadow:inset 0 -1px 0 #c6cbd1;}#theme-picker,#settings-menu,#help-button{border-color:#e0e0e0;background-color:#fff;}#theme-picker:hover,#theme-picker:focus,#settings-menu:hover,#settings-menu:focus,#help-button:hover,#help-button:focus{border-color:#717171;}#copy-path{color:#999;}#copy-path>img{filter:invert(50%);}#copy-path:hover>img{filter:invert(35%);}#theme-choices{border-color:#ccc;background-color:#fff;}#theme-choices>button:not(:first-child){border-top-color:#e0e0e0;}#theme-choices>button:hover,#theme-choices>button:focus{background-color:#eee;}@media (max-width:700px){#theme-picker{background:#fff;}}.search-results .result-name span.alias{color:#000;}.search-results .result-name span.grey{color:#999;}#sidebar-toggle{background-color:#F5F5F5;}#sidebar-toggle:hover{background-color:#E0E0E0;}#source-sidebar{background-color:#F5F5F5;}#source-sidebar>.title{border-bottom-color:#ccc;}div.files>a:hover,div.name:hover{background-color:#E0E0E0;}div.files>.selected{background-color:#fff;}.setting-line>.title{border-bottom-color:#D5D5D5;}.scraped-example-list .scrape-help{border-color:#555;color:#333;}.scraped-example-list .scrape-help:hover{border-color:black;color:black;}.more-examples-toggle summary,.more-examples-toggle .hide-more{color:#999;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.scraped-example:not(.expanded) .code-wrapper:before{background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.toggle-line-inner{background:#ccc;}.toggle-line:hover .toggle-line-inner{background:#999;} \ No newline at end of file diff --git a/main.js b/main.js index 5c0ce8ad..54450c14 100644 --- a/main.js +++ b/main.js @@ -1,8 +1,8 @@ -if(!String.prototype.startsWith){String.prototype.startsWith=function(searchString,position){position=position||0;return this.indexOf(searchString,position)===position}}if(!String.prototype.endsWith){String.prototype.endsWith=function(suffix,length){var l=length||this.length;return this.indexOf(suffix,l-suffix.length)!==-1}}if(!DOMTokenList.prototype.add){DOMTokenList.prototype.add=function(className){if(className&&!hasClass(this,className)){if(this.className&&this.className.length>0){this.className+=" "+className}else{this.className=className}}}}if(!DOMTokenList.prototype.remove){DOMTokenList.prototype.remove=function(className){if(className&&this.className){this.className=(" "+this.className+" ").replace(" "+className+" "," ").trim()}}}function getVar(name){var el=document.getElementById("rustdoc-vars");if(el){return el.attributes["data-"+name].value}else{return null}}function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}(function(){window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");window.searchJS=resourcePath("search",".js");window.searchIndexJS=resourcePath("search-index",".js");var sidebarVars=document.getElementById("sidebar-vars");if(sidebarVars){window.sidebarCurrent={name:sidebarVars.attributes["data-name"].value,ty:sidebarVars.attributes["data-ty"].value,relpath:sidebarVars.attributes["data-relpath"].value,};var mobileLocationTitle=document.querySelector(".mobile-topbar h2.location");var locationTitle=document.querySelector(".sidebar h2.location");if(mobileLocationTitle&&locationTitle){mobileLocationTitle.innerHTML=locationTitle.innerHTML}}}());function getVirtualKey(ev){if("key"in ev&&typeof ev.key!="undefined"){return ev.key}var c=ev.charCode||ev.keyCode;if(c==27){return"Escape"}return String.fromCharCode(c)}var THEME_PICKER_ELEMENT_ID="theme-picker";var THEMES_ELEMENT_ID="theme-choices";var MAIN_ID="main-content";function getThemesElement(){return document.getElementById(THEMES_ELEMENT_ID)}function getThemePickerElement(){return document.getElementById(THEME_PICKER_ELEMENT_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function showThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){var themePicker=getThemePickerElement();var themeChoices=getThemesElement();themeChoices.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}(function(){if(!document.location.href.startsWith("file:///")){return}var themeChoices=getThemesElement();var themePicker=getThemePickerElement();var availableThemes=getVar("themes").split(",");removeClass(themeChoices.parentElement,"hidden");function switchThemeButtonState(){if(themeChoices.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}}function handleThemeButtonsBlur(e){var active=document.activeElement;var related=e.relatedTarget;if(active.id!==THEME_PICKER_ELEMENT_ID&&(!active.parentNode||active.parentNode.id!==THEMES_ELEMENT_ID)&&(!related||(related.id!==THEME_PICKER_ELEMENT_ID&&(!related.parentNode||related.parentNode.id!==THEMES_ELEMENT_ID)))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;availableThemes.forEach(function(item){var but=document.createElement("button");but.textContent=item;but.onclick=function(){switchTheme(window.currentTheme,window.mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themeChoices.appendChild(but)})}());(function(){"use strict";window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:function(){return document.getElementById("search")},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:function(){if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},focus:function(){searchState.input.focus()},defocus:function(){searchState.input.blur()},showResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(main,"hidden");removeClass(search,"hidden");searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:function(search){if(search===null||typeof search==='undefined'){search=searchState.outputElement()}addClass(search,"hidden");removeClass(main,"hidden");document.title=searchState.titleBeforeSearch;if(searchState.browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:function(){var params={};window.location.search.substring(1).split("&").map(function(s){var pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},browserSupportsHistoryApi:function(){return window.history&&typeof window.history.pushState==="function"},setup:function(){var search_input=searchState.input;if(!searchState.input){return}function loadScript(url){var script=document.createElement('script');script.src=url;document.head.append(script)}var searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(window.searchJS);loadScript(window.searchIndexJS)}}search_input.addEventListener("focus",function(){search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!=''){loadSearch()}var params=searchState.getQueryStringParams();if(params.search!==undefined){var search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search);loadSearch()}},};function getPageId(){if(window.location.hash){var tmp=window.location.hash.replace(/^#/,"");if(tmp.length>0){return tmp}}return null}var toggleAllDocsId="toggle-all-docs";var main=document.getElementById(MAIN_ID);var savedHash="";function handleHashes(ev){var elem;var search=searchState.outputElement();if(ev!==null&&search&&!hasClass(search,"hidden")&&ev.newURL){searchState.hideResults(search);var hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(searchState.browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}function onHashChange(ev){var sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown");handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function getHelpElement(build){if(build){buildHelperPopup()}return document.getElementById("help")}function displayHelp(display,ev,help){if(display){help=help?help:getHelpElement(true);if(hasClass(help,"hidden")){ev.preventDefault();removeClass(help,"hidden");addClass(document.body,"blur")}}else{help=help?help:getHelpElement(false);if(help&&!hasClass(help,"hidden")){ev.preventDefault();addClass(help,"hidden");removeClass(document.body,"blur")}}}function handleEscape(ev){var help=getHelpElement(false);var search=searchState.outputElement();if(help&&!hasClass(help,"hidden")){displayHelp(false,ev,help)}else if(search&&!hasClass(search,"hidden")){searchState.clearInputTimeout();ev.preventDefault();searchState.hideResults(search)}searchState.defocus();hideThemeButtonState()}var disableShortcuts=getSettingValue("disable-shortcuts")==="true";function handleShortcut(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}if(document.activeElement.tagName==="INPUT"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":displayHelp(false,ev);ev.preventDefault();searchState.focus();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":displayHelp(true,ev);break;case"t":case"T":displayHelp(false,ev);ev.preventDefault();var themePicker=getThemePickerElement();themePicker.click();themePicker.focus();break;default:if(getThemePickerElement().parentNode.contains(ev.target)){handleThemeKeyDown(ev)}}}}function handleThemeKeyDown(ev){var active=document.activeElement;var themes=getThemesElement();switch(getVirtualKey(ev)){case"ArrowUp":ev.preventDefault();if(active.previousElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.previousElementSibling.focus()}else{showThemeButtonState();themes.lastElementChild.focus()}break;case"ArrowDown":ev.preventDefault();if(active.nextElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.nextElementSibling.focus()}else{showThemeButtonState();themes.firstElementChild.focus()}break;case"Enter":case"Return":case"Space":if(ev.target.id===THEME_PICKER_ELEMENT_ID&&themes.style.display==="none"){ev.preventDefault();showThemeButtonState();themes.firstElementChild.focus()}break;case"Home":ev.preventDefault();themes.firstElementChild.focus();break;case"End":ev.preventDefault();themes.lastElementChild.focus();break}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);(function(){var x=document.getElementsByClassName("version-selector");if(x.length>0){x[0].onchange=function(){var i,match,url=document.location.href,stripped="",len=window.rootPath.match(/\.\.\//g).length+1;for(i=0;i${longty}`;div.appendChild(h3);var ul=document.createElement("ul");for(var i=0,len=filtered.length;i .in-band > .trait").textContent;var baseIdName="impl-"+traitName+"-";var libs=Object.getOwnPropertyNames(imp);for(var i=0,llength=libs.length;i summary:not(.hideme)"),function(el){el.addEventListener("click",function(e){if(e.target.tagName!="SUMMARY"&&e.target.tagName!="A"){e.preventDefault()}})});onEachLazy(document.getElementsByClassName("notable-traits"),function(e){e.onclick=function(){this.getElementsByClassName('notable-traits-tooltiptext')[0].classList.toggle("force-tooltip")}});var sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",function(){var sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){addClass(sidebar,"shown")}else{removeClass(sidebar,"shown")}})}var buildHelperPopup=function(){var popup=document.createElement("aside");addClass(popup,"hidden");popup.id="help";popup.addEventListener("click",function(ev){if(ev.target===popup){displayHelp(false,ev)}});var book_info=document.createElement("span");book_info.className="top";book_info.innerHTML="You can find more information in \ - the rustdoc book.";var container=document.createElement("div");var shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["T","Focus the theme picker menu"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(function(x){return"
"+x[0].split(" ").map(function(y,index){return(index&1)===0?""+y+"":" "+y+" "}).join("")+"
"+x[1]+"
"}).join("");var div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";var infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \ +"use strict";if(!String.prototype.startsWith){String.prototype.startsWith=function(searchString,position){position=position||0;return this.indexOf(searchString,position)===position}}if(!String.prototype.endsWith){String.prototype.endsWith=function(suffix,length){const l=length||this.length;return this.indexOf(suffix,l-suffix.length)!==-1}}if(!DOMTokenList.prototype.add){DOMTokenList.prototype.add=function(className){if(className&&!hasClass(this,className)){if(this.className&&this.className.length>0){this.className+=" "+className}else{this.className=className}}}}if(!DOMTokenList.prototype.remove){DOMTokenList.prototype.remove=function(className){if(className&&this.className){this.className=(" "+this.className+" ").replace(" "+className+" "," ").trim()}}}function getVar(name){const el=document.getElementById("rustdoc-vars");if(el){return el.attributes["data-"+name].value}else{return null}}function resourcePath(basename,extension){return getVar("root-path")+basename+getVar("resource-suffix")+extension}function hideMain(){addClass(document.getElementById(MAIN_ID),"hidden")}function showMain(){removeClass(document.getElementById(MAIN_ID),"hidden")}(function(){window.rootPath=getVar("root-path");window.currentCrate=getVar("current-crate");window.searchJS=resourcePath("search",".js");window.searchIndexJS=resourcePath("search-index",".js");window.settingsJS=resourcePath("settings",".js");const sidebarVars=document.getElementById("sidebar-vars");if(sidebarVars){window.sidebarCurrent={name:sidebarVars.attributes["data-name"].value,ty:sidebarVars.attributes["data-ty"].value,relpath:sidebarVars.attributes["data-relpath"].value,};const mobileLocationTitle=document.querySelector(".mobile-topbar h2.location");const locationTitle=document.querySelector(".sidebar h2.location");if(mobileLocationTitle&&locationTitle){mobileLocationTitle.innerHTML=locationTitle.innerHTML}}}());function getVirtualKey(ev){if("key"in ev&&typeof ev.key!="undefined"){return ev.key}const c=ev.charCode||ev.keyCode;if(c==27){return"Escape"}return String.fromCharCode(c)}const THEME_PICKER_ELEMENT_ID="theme-picker";const THEMES_ELEMENT_ID="theme-choices";const MAIN_ID="main-content";const SETTINGS_BUTTON_ID="settings-menu";const ALTERNATIVE_DISPLAY_ID="alternative-display";const NOT_DISPLAYED_ID="not-displayed";function getThemesElement(){return document.getElementById(THEMES_ELEMENT_ID)}function getThemePickerElement(){return document.getElementById(THEME_PICKER_ELEMENT_ID)}function getSettingsButton(){return document.getElementById(SETTINGS_BUTTON_ID)}function getNakedUrl(){return window.location.href.split("?")[0].split("#")[0]}function showThemeButtonState(){const themePicker=getThemePickerElement();const themeChoices=getThemesElement();themeChoices.style.display="block";themePicker.style.borderBottomRightRadius="0";themePicker.style.borderBottomLeftRadius="0"}function hideThemeButtonState(){const themePicker=getThemePickerElement();const themeChoices=getThemesElement();themeChoices.style.display="none";themePicker.style.borderBottomRightRadius="3px";themePicker.style.borderBottomLeftRadius="3px"}window.hideSettings=()=>{};(function(){if(!document.location.href.startsWith("file:///")){return}const themeChoices=getThemesElement();const themePicker=getThemePickerElement();const availableThemes=getVar("themes").split(",");removeClass(themeChoices.parentElement,"hidden");function switchThemeButtonState(){if(themeChoices.style.display==="block"){hideThemeButtonState()}else{showThemeButtonState()}}function handleThemeButtonsBlur(e){const active=document.activeElement;const related=e.relatedTarget;if(active.id!==THEME_PICKER_ELEMENT_ID&&(!active.parentNode||active.parentNode.id!==THEMES_ELEMENT_ID)&&(!related||(related.id!==THEME_PICKER_ELEMENT_ID&&(!related.parentNode||related.parentNode.id!==THEMES_ELEMENT_ID)))){hideThemeButtonState()}}themePicker.onclick=switchThemeButtonState;themePicker.onblur=handleThemeButtonsBlur;availableThemes.forEach(item=>{const but=document.createElement("button");but.textContent=item;but.onclick=()=>{switchTheme(window.currentTheme,window.mainTheme,item,true);useSystemTheme(false)};but.onblur=handleThemeButtonsBlur;themeChoices.appendChild(but)})}());function insertAfter(newNode,referenceNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function getOrCreateSection(id,classes){let el=document.getElementById(id);if(!el){el=document.createElement("section");el.id=id;el.className=classes;insertAfter(el,document.getElementById(MAIN_ID))}return el}function getAlternativeDisplayElem(){return getOrCreateSection(ALTERNATIVE_DISPLAY_ID,"content hidden")}function getNotDisplayedElem(){return getOrCreateSection(NOT_DISPLAYED_ID,"hidden")}function switchDisplayedElement(elemToDisplay){const el=getAlternativeDisplayElem();if(el.children.length>0){getNotDisplayedElem().appendChild(el.firstElementChild)}if(elemToDisplay===null){addClass(el,"hidden");showMain();return}el.appendChild(elemToDisplay);hideMain();removeClass(el,"hidden")}function browserSupportsHistoryApi(){return window.history&&typeof window.history.pushState==="function"}function loadCss(cssFileName){const link=document.createElement("link");link.href=resourcePath(cssFileName,".css");link.type="text/css";link.rel="stylesheet";document.getElementsByTagName("head")[0].appendChild(link)}(function(){function loadScript(url){const script=document.createElement("script");script.src=url;document.head.append(script)}getSettingsButton().onclick=event=>{addClass(getSettingsButton(),"rotate");event.preventDefault();loadCss("settings");loadScript(window.settingsJS)};window.searchState={loadingText:"Loading search results...",input:document.getElementsByClassName("search-input")[0],outputElement:()=>{let el=document.getElementById("search");if(!el){el=document.createElement("section");el.id="search";getNotDisplayedElem().appendChild(el)}return el},title:document.title,titleBeforeSearch:document.title,timeout:null,currentTab:0,focusedByTab:[null,null,null],clearInputTimeout:()=>{if(searchState.timeout!==null){clearTimeout(searchState.timeout);searchState.timeout=null}},isDisplayed:()=>searchState.outputElement().parentElement.id===ALTERNATIVE_DISPLAY_ID,focus:()=>{searchState.input.focus()},defocus:()=>{searchState.input.blur()},showResults:search=>{if(search===null||typeof search==="undefined"){search=searchState.outputElement()}switchDisplayedElement(search);searchState.mouseMovedAfterSearch=false;document.title=searchState.title},hideResults:()=>{switchDisplayedElement(null);document.title=searchState.titleBeforeSearch;if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}},getQueryStringParams:()=>{const params={};window.location.search.substring(1).split("&").map(s=>{const pair=s.split("=");params[decodeURIComponent(pair[0])]=typeof pair[1]==="undefined"?null:decodeURIComponent(pair[1])});return params},setup:()=>{const search_input=searchState.input;if(!searchState.input){return}let searchLoaded=false;function loadSearch(){if(!searchLoaded){searchLoaded=true;loadScript(window.searchJS);loadScript(window.searchIndexJS)}}search_input.addEventListener("focus",()=>{search_input.origPlaceholder=search_input.placeholder;search_input.placeholder="Type your search here.";loadSearch()});if(search_input.value!==""){loadSearch()}const params=searchState.getQueryStringParams();if(params.search!==undefined){const search=searchState.outputElement();search.innerHTML="

"+searchState.loadingText+"

";searchState.showResults(search);loadSearch()}},};function getPageId(){if(window.location.hash){const tmp=window.location.hash.replace(/^#/,"");if(tmp.length>0){return tmp}}return null}const toggleAllDocsId="toggle-all-docs";let savedHash="";function handleHashes(ev){if(ev!==null&&searchState.isDisplayed()&&ev.newURL){switchDisplayedElement(null);const hash=ev.newURL.slice(ev.newURL.indexOf("#")+1);if(browserSupportsHistoryApi()){history.replaceState(null,"",getNakedUrl()+window.location.search+"#"+hash)}const elem=document.getElementById(hash);if(elem){elem.scrollIntoView()}}if(savedHash!==window.location.hash){savedHash=window.location.hash;if(savedHash.length===0){return}expandSection(savedHash.slice(1))}}function onHashChange(ev){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown");handleHashes(ev)}function openParentDetails(elem){while(elem){if(elem.tagName==="DETAILS"){elem.open=true}elem=elem.parentNode}}function expandSection(id){openParentDetails(document.getElementById(id))}function getHelpElement(build){if(build){buildHelperPopup()}return document.getElementById("help")}function displayHelp(display,ev,help){if(display){help=help?help:getHelpElement(true);if(hasClass(help,"hidden")){ev.preventDefault();removeClass(help,"hidden");addClass(document.body,"blur")}}else{help=help?help:getHelpElement(false);if(help&&!hasClass(help,"hidden")){ev.preventDefault();addClass(help,"hidden");removeClass(document.body,"blur")}}}function handleEscape(ev){searchState.clearInputTimeout();const help=getHelpElement(false);if(help&&!hasClass(help,"hidden")){displayHelp(false,ev,help)}else{switchDisplayedElement(null);if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}ev.preventDefault()}searchState.defocus();hideThemeButtonState()}const disableShortcuts=getSettingValue("disable-shortcuts")==="true";function handleShortcut(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey||disableShortcuts){return}let themePicker;if(document.activeElement.tagName==="INPUT"){switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break}}else{switch(getVirtualKey(ev)){case"Escape":handleEscape(ev);break;case"s":case"S":displayHelp(false,ev);ev.preventDefault();searchState.focus();break;case"+":case"-":ev.preventDefault();toggleAllDocs();break;case"?":displayHelp(true,ev);break;case"t":case"T":displayHelp(false,ev);ev.preventDefault();themePicker=getThemePickerElement();themePicker.click();themePicker.focus();break;default:if(getThemePickerElement().parentNode.contains(ev.target)){handleThemeKeyDown(ev)}}}}function handleThemeKeyDown(ev){const active=document.activeElement;const themes=getThemesElement();switch(getVirtualKey(ev)){case"ArrowUp":ev.preventDefault();if(active.previousElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.previousElementSibling.focus()}else{showThemeButtonState();themes.lastElementChild.focus()}break;case"ArrowDown":ev.preventDefault();if(active.nextElementSibling&&ev.target.id!==THEME_PICKER_ELEMENT_ID){active.nextElementSibling.focus()}else{showThemeButtonState();themes.firstElementChild.focus()}break;case"Enter":case"Return":case"Space":if(ev.target.id===THEME_PICKER_ELEMENT_ID&&themes.style.display==="none"){ev.preventDefault();showThemeButtonState();themes.firstElementChild.focus()}break;case"Home":ev.preventDefault();themes.firstElementChild.focus();break;case"End":ev.preventDefault();themes.lastElementChild.focus();break}}document.addEventListener("keypress",handleShortcut);document.addEventListener("keydown",handleShortcut);window.initSidebarItems=items=>{const sidebar=document.getElementsByClassName("sidebar-elems")[0];let others;const current=window.sidebarCurrent;function addSidebarCrates(crates){if(!hasClass(document.body,"crate")){return}const div=document.createElement("div");div.className="block crate";div.innerHTML="

Crates

";const ul=document.createElement("ul");div.appendChild(ul);for(const crate of crates){let klass="crate";if(window.rootPath!=="./"&&crate===window.currentCrate){klass+=" current"}const link=document.createElement("a");link.href=window.rootPath+crate+"/index.html";link.className=klass;link.textContent=crate;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}others.appendChild(div)}function block(shortty,id,longty){const filtered=items[shortty];if(!filtered){return}const div=document.createElement("div");div.className="block "+shortty;const h3=document.createElement("h3");h3.innerHTML=`${longty}`;div.appendChild(h3);const ul=document.createElement("ul");for(const item of filtered){const name=item[0];const desc=item[1];let klass=shortty;if(name===current.name&&shortty===current.ty){klass+=" current"}let path;if(shortty==="mod"){path=name+"/index.html"}else{path=shortty+"."+name+".html"}const link=document.createElement("a");link.href=current.relpath+path;link.title=desc;link.className=klass;link.textContent=name;const li=document.createElement("li");li.appendChild(link);ul.appendChild(li)}div.appendChild(ul);others.appendChild(div)}if(sidebar){others=document.createElement("div");others.className="others";sidebar.appendChild(others);const isModule=hasClass(document.body,"mod");if(!isModule){block("primitive","primitives","Primitive Types");block("mod","modules","Modules");block("macro","macros","Macros");block("struct","structs","Structs");block("enum","enums","Enums");block("union","unions","Unions");block("constant","constants","Constants");block("static","static","Statics");block("trait","traits","Traits");block("fn","functions","Functions");block("type","types","Type Definitions");block("foreigntype","foreign-types","Foreign Types");block("keyword","keywords","Keywords");block("traitalias","trait-aliases","Trait Aliases")}addSidebarCrates(window.ALL_CRATES)}};window.register_implementors=imp=>{const implementors=document.getElementById("implementors-list");const synthetic_implementors=document.getElementById("synthetic-implementors-list");const inlined_types=new Set();if(synthetic_implementors){onEachLazy(synthetic_implementors.getElementsByClassName("impl"),el=>{const aliases=el.getAttribute("data-aliases");if(!aliases){return}aliases.split(",").forEach(alias=>{inlined_types.add(alias)})})}let currentNbImpls=implementors.getElementsByClassName("impl").length;const traitName=document.querySelector("h1.fqn > .in-band > .trait").textContent;const baseIdName="impl-"+traitName+"-";const libs=Object.getOwnPropertyNames(imp);const ignoreExternCrates=document.querySelector("script[data-ignore-extern-crates]").getAttribute("data-ignore-extern-crates");for(const lib of libs){if(lib===window.currentCrate||ignoreExternCrates.indexOf(lib)!==-1){continue}const structs=imp[lib];struct_loop:for(const struct of structs){const list=struct.synthetic?synthetic_implementors:implementors;if(struct.synthetic){for(const struct_type of struct.types){if(inlined_types.has(struct_type)){continue struct_loop}inlined_types.add(struct_type)}}const code=document.createElement("h3");code.innerHTML=struct.text;addClass(code,"code-header");addClass(code,"in-band");onEachLazy(code.getElementsByTagName("a"),elem=>{const href=elem.getAttribute("href");if(href&&href.indexOf("http")!==0){elem.setAttribute("href",window.rootPath+href)}});const currentId=baseIdName+currentNbImpls;const anchor=document.createElement("a");anchor.href="#"+currentId;addClass(anchor,"anchor");const display=document.createElement("div");display.id=currentId;addClass(display,"impl");display.appendChild(anchor);display.appendChild(code);list.appendChild(display);currentNbImpls+=1}}};if(window.pending_implementors){window.register_implementors(window.pending_implementors)}function labelForToggleButton(sectionIsCollapsed){if(sectionIsCollapsed){return"+"}return"\u2212"}function toggleAllDocs(){const innerToggle=document.getElementById(toggleAllDocsId);if(!innerToggle){return}let sectionIsCollapsed=false;if(hasClass(innerToggle,"will-expand")){removeClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("rustdoc-toggle"),e=>{if(!hasClass(e,"type-contents-toggle")){e.open=true}});innerToggle.title="collapse all docs"}else{addClass(innerToggle,"will-expand");onEachLazy(document.getElementsByClassName("rustdoc-toggle"),e=>{if(e.parentNode.id!=="implementations-list"||(!hasClass(e,"implementors-toggle")&&!hasClass(e,"type-contents-toggle"))){e.open=false}});sectionIsCollapsed=true;innerToggle.title="expand all docs"}innerToggle.children[0].innerText=labelForToggleButton(sectionIsCollapsed)}(function(){const toggles=document.getElementById(toggleAllDocsId);if(toggles){toggles.onclick=toggleAllDocs}const hideMethodDocs=getSettingValue("auto-hide-method-docs")==="true";const hideImplementations=getSettingValue("auto-hide-trait-implementations")==="true";const hideLargeItemContents=getSettingValue("auto-hide-large-items")!=="false";function setImplementorsTogglesOpen(id,open){const list=document.getElementById(id);if(list!==null){onEachLazy(list.getElementsByClassName("implementors-toggle"),e=>{e.open=open})}}if(hideImplementations){setImplementorsTogglesOpen("trait-implementations-list",false);setImplementorsTogglesOpen("blanket-implementations-list",false)}onEachLazy(document.getElementsByClassName("rustdoc-toggle"),e=>{if(!hideLargeItemContents&&hasClass(e,"type-contents-toggle")){e.open=true}if(hideMethodDocs&&hasClass(e,"method-toggle")){e.open=false}});const pageId=getPageId();if(pageId!==null){expandSection(pageId)}}());(function(){let lineNumbersFunc=()=>{};if(getSettingValue("line-numbers")==="true"){lineNumbersFunc=x=>{const count=x.textContent.split("\n").length;const elems=[];for(let i=0;i{if(hasClass(e,"compile_fail")){e.addEventListener("mouseover",function(){this.parentElement.previousElementSibling.childNodes[0].style.color="#f00"});e.addEventListener("mouseout",function(){this.parentElement.previousElementSibling.childNodes[0].style.color=""})}else if(hasClass(e,"ignore")){e.addEventListener("mouseover",function(){this.parentElement.previousElementSibling.childNodes[0].style.color="#ff9200"});e.addEventListener("mouseout",function(){this.parentElement.previousElementSibling.childNodes[0].style.color=""})}lineNumbersFunc(e)})}());function hideSidebar(){const sidebar=document.getElementsByClassName("sidebar")[0];removeClass(sidebar,"shown")}function handleClick(id,f){const elem=document.getElementById(id);if(elem){elem.addEventListener("click",f)}}handleClick("help-button",ev=>{displayHelp(true,ev)});handleClick(MAIN_ID,()=>{hideSidebar()});onEachLazy(document.getElementsByTagName("a"),el=>{if(el.hash){el.addEventListener("click",()=>{expandSection(el.hash.slice(1));hideSidebar()})}});onEachLazy(document.querySelectorAll(".rustdoc-toggle > summary:not(.hideme)"),el=>{el.addEventListener("click",e=>{if(e.target.tagName!=="SUMMARY"&&e.target.tagName!=="A"){e.preventDefault()}})});onEachLazy(document.getElementsByClassName("notable-traits"),e=>{e.onclick=function(){this.getElementsByClassName("notable-traits-tooltiptext")[0].classList.toggle("force-tooltip")}});const sidebar_menu_toggle=document.getElementsByClassName("sidebar-menu-toggle")[0];if(sidebar_menu_toggle){sidebar_menu_toggle.addEventListener("click",()=>{const sidebar=document.getElementsByClassName("sidebar")[0];if(!hasClass(sidebar,"shown")){addClass(sidebar,"shown")}else{removeClass(sidebar,"shown")}})}let buildHelperPopup=()=>{const popup=document.createElement("aside");addClass(popup,"hidden");popup.id="help";popup.addEventListener("click",ev=>{if(ev.target===popup){displayHelp(false,ev)}});const book_info=document.createElement("span");book_info.className="top";book_info.innerHTML="You can find more information in \ + the rustdoc book.";const container=document.createElement("div");const shortcuts=[["?","Show this help dialog"],["S","Focus the search field"],["T","Focus the theme picker menu"],["↑","Move up in search results"],["↓","Move down in search results"],["← / →","Switch result tab (when results focused)"],["⏎","Go to active search result"],["+","Expand all sections"],["-","Collapse all sections"],].map(x=>"
"+x[0].split(" ").map((y,index)=>(index&1)===0?""+y+"":" "+y+" ").join("")+"
"+x[1]+"
").join("");const div_shortcuts=document.createElement("div");addClass(div_shortcuts,"shortcuts");div_shortcuts.innerHTML="

Keyboard Shortcuts

"+shortcuts+"
";const infos=["Prefix searches with a type followed by a colon (e.g., fn:) to \ restrict the search to a given item kind.","Accepted kinds are: fn, mod, struct, \ enum, trait, type, macro, \ and const.","Search functions by type signature (e.g., vec -> usize or \ * -> vec)","Search multiple things at once by splitting your query with comma (e.g., \ str,u8 or String,struct:Vec,test)","You can look for items with an exact name by putting double quotes around \ - your request: \"string\"","Look for items inside another one by searching for a path: vec::Vec",].map(function(x){return"

"+x+"

"}).join("");var div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;container.appendChild(book_info);container.appendChild(div_shortcuts);container.appendChild(div_infos);var rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";var rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);container.appendChild(rustdoc_version);popup.appendChild(container);insertAfter(popup,document.querySelector("main"));buildHelperPopup=function(){}};onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){var reset_button_timeout=null;window.copy_path=function(but){var parent=but.parentElement;var path=[];onEach(parent.childNodes,function(child){if(child.tagName==='A'){path.push(child.textContent)}});var el=document.createElement('textarea');el.value=path.join('::');el.setAttribute('readonly','');el.style.position='absolute';el.style.left='-9999px';document.body.appendChild(el);el.select();document.execCommand('copy');document.body.removeChild(el);but.children[0].style.display='none';var tmp;if(but.childNodes.length<2){tmp=document.createTextNode('✓');but.appendChild(tmp)}else{onEachLazy(but.childNodes,function(e){if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent='✓'}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent='';reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file + your request: \"string\"","Look for items inside another one by searching for a path: vec::Vec",].map(x=>"

"+x+"

").join("");const div_infos=document.createElement("div");addClass(div_infos,"infos");div_infos.innerHTML="

Search Tricks

"+infos;container.appendChild(book_info);container.appendChild(div_shortcuts);container.appendChild(div_infos);const rustdoc_version=document.createElement("span");rustdoc_version.className="bottom";const rustdoc_version_code=document.createElement("code");rustdoc_version_code.innerText="rustdoc "+getVar("rustdoc-version");rustdoc_version.appendChild(rustdoc_version_code);container.appendChild(rustdoc_version);popup.appendChild(container);insertAfter(popup,document.querySelector("main"));buildHelperPopup=()=>{}};onHashChange(null);window.addEventListener("hashchange",onHashChange);searchState.setup()}());(function(){let reset_button_timeout=null;window.copy_path=but=>{const parent=but.parentElement;const path=[];onEach(parent.childNodes,child=>{if(child.tagName==="A"){path.push(child.textContent)}});const el=document.createElement("textarea");el.value=path.join("::");el.setAttribute("readonly","");el.style.position="absolute";el.style.left="-9999px";document.body.appendChild(el);el.select();document.execCommand("copy");document.body.removeChild(el);but.children[0].style.display="none";let tmp;if(but.childNodes.length<2){tmp=document.createTextNode("✓");but.appendChild(tmp)}else{onEachLazy(but.childNodes,e=>{if(e.nodeType===Node.TEXT_NODE){tmp=e;return true}});tmp.textContent="✓"}if(reset_button_timeout!==null){window.clearTimeout(reset_button_timeout)}function reset_button(){tmp.textContent="";reset_button_timeout=null;but.children[0].style.display=""}reset_button_timeout=window.setTimeout(reset_button,1000)}}()) \ No newline at end of file diff --git a/mcaptcha/all.html b/mcaptcha/all.html index c5d80ab0..9650149a 100644 --- a/mcaptcha/all.html +++ b/mcaptcha/all.html @@ -3,5 +3,5 @@

List of all items

Structs

Enums

Traits

Macros

Functions

Typedefs

Constants

+

Crate mcaptcha

List of all items

Structs

Enums

Traits

Macros

Functions

Typedefs

Constants

\ No newline at end of file diff --git a/mcaptcha/api/index.html b/mcaptcha/api/index.html index 2dfdc91b..6d57c5b1 100644 --- a/mcaptcha/api/index.html +++ b/mcaptcha/api/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/delete/fn.services.html b/mcaptcha/api/v1/account/delete/fn.services.html index 969ca05c..0d6f8329 100644 --- a/mcaptcha/api/v1/account/delete/fn.services.html +++ b/mcaptcha/api/v1/account/delete/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::account::delete::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/delete/index.html b/mcaptcha/api/v1/account/delete/index.html index 100001b6..9c85f50c 100644 --- a/mcaptcha/api/v1/account/delete/index.html +++ b/mcaptcha/api/v1/account/delete/index.html @@ -7,5 +7,5 @@

Module mcaptcha::api::v1::account::delete

source · []

Modules

Structs

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/delete/runners/fn.delete_user.html b/mcaptcha/api/v1/account/delete/runners/fn.delete_user.html index caceaafb..882ff1d8 100644 --- a/mcaptcha/api/v1/account/delete/runners/fn.delete_user.html +++ b/mcaptcha/api/v1/account/delete/runners/fn.delete_user.html @@ -4,5 +4,5 @@
pub async fn delete_user(name: &str, data: &AppData) -> Result<(), ServiceError>
+

Function mcaptcha::api::v1::account::delete::runners::delete_user

source · []
pub async fn delete_user(name: &str, data: &AppData) -> Result<(), ServiceError>
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/delete/runners/index.html b/mcaptcha/api/v1/account/delete/runners/index.html index 39c8446e..283956f2 100644 --- a/mcaptcha/api/v1/account/delete/runners/index.html +++ b/mcaptcha/api/v1/account/delete/runners/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/delete/struct.delete_account.html b/mcaptcha/api/v1/account/delete/struct.delete_account.html index a8bcac0e..9bf9e712 100644 --- a/mcaptcha/api/v1/account/delete/struct.delete_account.html +++ b/mcaptcha/api/v1/account/delete/struct.delete_account.html @@ -4,25 +4,25 @@
pub struct delete_account;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::account::delete::delete_account

source · []
pub struct delete_account;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/email/fn.services.html b/mcaptcha/api/v1/account/email/fn.services.html index 64a36510..e48d07bc 100644 --- a/mcaptcha/api/v1/account/email/fn.services.html +++ b/mcaptcha/api/v1/account/email/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::account::email::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/email/index.html b/mcaptcha/api/v1/account/email/index.html index d5803a0c..322ba2ca 100644 --- a/mcaptcha/api/v1/account/email/index.html +++ b/mcaptcha/api/v1/account/email/index.html @@ -7,5 +7,5 @@

Module mcaptcha::api::v1::account::email

source · []

Structs

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/email/struct.Email.html b/mcaptcha/api/v1/account/email/struct.Email.html index acadbf41..a3d2cded 100644 --- a/mcaptcha/api/v1/account/email/struct.Email.html +++ b/mcaptcha/api/v1/account/email/struct.Email.html @@ -5,34 +5,34 @@
pub struct Email {
-    pub email: String,
-}

Fields

email: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub email: String, +}

Fields

email: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/email/struct.email_exists.html b/mcaptcha/api/v1/account/email/struct.email_exists.html index 666b23f2..30397632 100644 --- a/mcaptcha/api/v1/account/email/struct.email_exists.html +++ b/mcaptcha/api/v1/account/email/struct.email_exists.html @@ -4,25 +4,25 @@
pub struct email_exists;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::account::email::email_exists

source · []
pub struct email_exists;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/email/struct.set_email.html b/mcaptcha/api/v1/account/email/struct.set_email.html index 7fcbe432..b107f98b 100644 --- a/mcaptcha/api/v1/account/email/struct.set_email.html +++ b/mcaptcha/api/v1/account/email/struct.set_email.html @@ -5,25 +5,25 @@
pub struct set_email;
Expand description

update email

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/fn.services.html b/mcaptcha/api/v1/account/fn.services.html index c2d9de49..cb86a210 100644 --- a/mcaptcha/api/v1/account/fn.services.html +++ b/mcaptcha/api/v1/account/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::account::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/index.html b/mcaptcha/api/v1/account/index.html index 1e512a30..1483fa85 100644 --- a/mcaptcha/api/v1/account/index.html +++ b/mcaptcha/api/v1/account/index.html @@ -3,10 +3,10 @@

\ No newline at end of file diff --git a/mcaptcha/api/v1/account/password/fn.services.html b/mcaptcha/api/v1/account/password/fn.services.html index 3d3d7e9d..4a0e173d 100644 --- a/mcaptcha/api/v1/account/password/fn.services.html +++ b/mcaptcha/api/v1/account/password/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::account::password::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/password/fn.update_password_runner.html b/mcaptcha/api/v1/account/password/fn.update_password_runner.html index 57e62fe1..91a34793 100644 --- a/mcaptcha/api/v1/account/password/fn.update_password_runner.html +++ b/mcaptcha/api/v1/account/password/fn.update_password_runner.html @@ -4,5 +4,5 @@
async fn update_password_runner(
    user: &str,
    update: UpdatePassword,
    data: &Data
) -> Result<(), ServiceError>
+

Function mcaptcha::api::v1::account::password::update_password_runner

source · []
async fn update_password_runner(
    user: &str,
    update: UpdatePassword,
    data: &Data
) -> Result<(), ServiceError>
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/password/index.html b/mcaptcha/api/v1/account/password/index.html index faa5ed6e..dd6ca021 100644 --- a/mcaptcha/api/v1/account/password/index.html +++ b/mcaptcha/api/v1/account/password/index.html @@ -6,5 +6,5 @@

Module password

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/password/struct.ChangePasswordReqest.html b/mcaptcha/api/v1/account/password/struct.ChangePasswordReqest.html index 5b14aeb2..d31d0f25 100644 --- a/mcaptcha/api/v1/account/password/struct.ChangePasswordReqest.html +++ b/mcaptcha/api/v1/account/password/struct.ChangePasswordReqest.html @@ -5,37 +5,37 @@
pub struct ChangePasswordReqest {
-    pub password: String,
-    pub new_password: String,
-    pub confirm_new_password: String,
-}

Fields

password: Stringnew_password: Stringconfirm_new_password: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub password: String, + pub new_password: String, + pub confirm_new_password: String, +}

Fields

password: Stringnew_password: Stringconfirm_new_password: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/password/struct.UpdatePassword.html b/mcaptcha/api/v1/account/password/struct.UpdatePassword.html index bce14f52..feb55c48 100644 --- a/mcaptcha/api/v1/account/password/struct.UpdatePassword.html +++ b/mcaptcha/api/v1/account/password/struct.UpdatePassword.html @@ -5,28 +5,28 @@
pub struct UpdatePassword {
-    pub new_password: String,
-    pub confirm_new_password: String,
-}

Fields

new_password: Stringconfirm_new_password: String

Trait Implementations

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub new_password: String, + pub confirm_new_password: String, +}

Fields

new_password: Stringconfirm_new_password: String

Trait Implementations

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/password/struct.update_user_password.html b/mcaptcha/api/v1/account/password/struct.update_user_password.html index 65bd911a..c99c9fda 100644 --- a/mcaptcha/api/v1/account/password/struct.update_user_password.html +++ b/mcaptcha/api/v1/account/password/struct.update_user_password.html @@ -4,25 +4,25 @@
pub struct update_user_password;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::account::password::update_user_password

source · []
pub struct update_user_password;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/routes/index.html b/mcaptcha/api/v1/account/routes/index.html index fcd71911..83fa812a 100644 --- a/mcaptcha/api/v1/account/routes/index.html +++ b/mcaptcha/api/v1/account/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/routes/struct.Account.html b/mcaptcha/api/v1/account/routes/struct.Account.html index 1fd0c5f2..4e8b118d 100644 --- a/mcaptcha/api/v1/account/routes/struct.Account.html +++ b/mcaptcha/api/v1/account/routes/struct.Account.html @@ -5,33 +5,33 @@
pub struct Account {
-    pub delete: &'static str,
-    pub email_exists: &'static str,
-    pub get_secret: &'static str,
-    pub update_email: &'static str,
-    pub update_password: &'static str,
-    pub update_secret: &'static str,
-    pub username_exists: &'static str,
-    pub update_username: &'static str,
-}

Fields

delete: &'static stremail_exists: &'static strget_secret: &'static strupdate_email: &'static strupdate_password: &'static strupdate_secret: &'static strusername_exists: &'static strupdate_username: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub delete: &'static str, + pub email_exists: &'static str, + pub get_secret: &'static str, + pub update_email: &'static str, + pub update_password: &'static str, + pub update_secret: &'static str, + pub username_exists: &'static str, + pub update_username: &'static str, +}

Fields

delete: &'static stremail_exists: &'static strget_secret: &'static strupdate_email: &'static strupdate_password: &'static strupdate_secret: &'static strusername_exists: &'static strupdate_username: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/secret/fn.services.html b/mcaptcha/api/v1/account/secret/fn.services.html index f21f0635..88af574b 100644 --- a/mcaptcha/api/v1/account/secret/fn.services.html +++ b/mcaptcha/api/v1/account/secret/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::account::secret::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/secret/index.html b/mcaptcha/api/v1/account/secret/index.html index 2a3659f8..77791ad2 100644 --- a/mcaptcha/api/v1/account/secret/index.html +++ b/mcaptcha/api/v1/account/secret/index.html @@ -6,5 +6,5 @@

Module secret

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/secret/struct.get_secret.html b/mcaptcha/api/v1/account/secret/struct.get_secret.html index 482b35ca..2942af14 100644 --- a/mcaptcha/api/v1/account/secret/struct.get_secret.html +++ b/mcaptcha/api/v1/account/secret/struct.get_secret.html @@ -4,25 +4,25 @@
pub struct get_secret;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::account::secret::get_secret

source · []
pub struct get_secret;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/secret/struct.update_user_secret.html b/mcaptcha/api/v1/account/secret/struct.update_user_secret.html index beb2f1e1..341239dc 100644 --- a/mcaptcha/api/v1/account/secret/struct.update_user_secret.html +++ b/mcaptcha/api/v1/account/secret/struct.update_user_secret.html @@ -4,25 +4,25 @@
pub struct update_user_secret;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::account::secret::update_user_secret

source · []
pub struct update_user_secret;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/struct.AccountCheckPayload.html b/mcaptcha/api/v1/account/struct.AccountCheckPayload.html index 6518efb4..a5dbf9b6 100644 --- a/mcaptcha/api/v1/account/struct.AccountCheckPayload.html +++ b/mcaptcha/api/v1/account/struct.AccountCheckPayload.html @@ -5,34 +5,34 @@
pub struct AccountCheckPayload {
-    pub val: String,
-}

Fields

val: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub val: String, +}

Fields

val: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/struct.AccountCheckResp.html b/mcaptcha/api/v1/account/struct.AccountCheckResp.html index 7a747bfd..3d4fc074 100644 --- a/mcaptcha/api/v1/account/struct.AccountCheckResp.html +++ b/mcaptcha/api/v1/account/struct.AccountCheckResp.html @@ -5,34 +5,34 @@
pub struct AccountCheckResp {
-    pub exists: bool,
-}

Fields

exists: bool

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub exists: bool, +}

Fields

exists: bool

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/username/fn.services.html b/mcaptcha/api/v1/account/username/fn.services.html index 99480b56..e6d8ade7 100644 --- a/mcaptcha/api/v1/account/username/fn.services.html +++ b/mcaptcha/api/v1/account/username/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::account::username::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/username/index.html b/mcaptcha/api/v1/account/username/index.html index ad91b894..13cb8f29 100644 --- a/mcaptcha/api/v1/account/username/index.html +++ b/mcaptcha/api/v1/account/username/index.html @@ -8,5 +8,5 @@

Structs

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/username/runners/fn.username_exists.html b/mcaptcha/api/v1/account/username/runners/fn.username_exists.html index a79ca753..70d57af8 100644 --- a/mcaptcha/api/v1/account/username/runners/fn.username_exists.html +++ b/mcaptcha/api/v1/account/username/runners/fn.username_exists.html @@ -4,5 +4,5 @@
pub async fn username_exists(
    payload: &AccountCheckPayload,
    data: &AppData
) -> Result<AccountCheckResp, ServiceError>
+

Function mcaptcha::api::v1::account::username::runners::username_exists

source · []
pub async fn username_exists(
    payload: &AccountCheckPayload,
    data: &AppData
) -> Result<AccountCheckResp, ServiceError>
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/username/runners/index.html b/mcaptcha/api/v1/account/username/runners/index.html index d7a361ab..1bd350f0 100644 --- a/mcaptcha/api/v1/account/username/runners/index.html +++ b/mcaptcha/api/v1/account/username/runners/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/username/struct.Username.html b/mcaptcha/api/v1/account/username/struct.Username.html index 93d03443..4afb1d7a 100644 --- a/mcaptcha/api/v1/account/username/struct.Username.html +++ b/mcaptcha/api/v1/account/username/struct.Username.html @@ -5,34 +5,34 @@
pub struct Username {
-    pub username: String,
-}

Fields

username: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub username: String, +}

Fields

username: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/username/struct.set_username.html b/mcaptcha/api/v1/account/username/struct.set_username.html index 6018c880..94fc54de 100644 --- a/mcaptcha/api/v1/account/username/struct.set_username.html +++ b/mcaptcha/api/v1/account/username/struct.set_username.html @@ -5,25 +5,25 @@
pub struct set_username;
Expand description

update username

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/account/username/struct.username_exists.html b/mcaptcha/api/v1/account/username/struct.username_exists.html index 8cbfc7dc..be774a76 100644 --- a/mcaptcha/api/v1/account/username/struct.username_exists.html +++ b/mcaptcha/api/v1/account/username/struct.username_exists.html @@ -4,25 +4,25 @@
pub struct username_exists;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::account::username::username_exists

source · []
pub struct username_exists;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/fn.services.html b/mcaptcha/api/v1/auth/fn.services.html index 71b40cf2..9b615890 100644 --- a/mcaptcha/api/v1/auth/fn.services.html +++ b/mcaptcha/api/v1/auth/fn.services.html @@ -4,5 +4,5 @@
-

Function mcaptcha::api::v1::auth::services

source · []
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::auth::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/index.html b/mcaptcha/api/v1/auth/index.html index 0761373c..d4ddb4bb 100644 --- a/mcaptcha/api/v1/auth/index.html +++ b/mcaptcha/api/v1/auth/index.html @@ -7,5 +7,5 @@

Module mcaptcha::api::v1::auth

source · []

Modules

Structs

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/routes/index.html b/mcaptcha/api/v1/auth/routes/index.html index 62c11a44..f9584d9b 100644 --- a/mcaptcha/api/v1/auth/routes/index.html +++ b/mcaptcha/api/v1/auth/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/routes/struct.Auth.html b/mcaptcha/api/v1/auth/routes/struct.Auth.html index 51de3ea4..b67c81ca 100644 --- a/mcaptcha/api/v1/auth/routes/struct.Auth.html +++ b/mcaptcha/api/v1/auth/routes/struct.Auth.html @@ -5,28 +5,28 @@
pub struct Auth {
-    pub logout: &'static str,
-    pub login: &'static str,
-    pub register: &'static str,
-}

Fields

logout: &'static strlogin: &'static strregister: &'static str

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub logout: &'static str, + pub login: &'static str, + pub register: &'static str, +}

Fields

logout: &'static strlogin: &'static strregister: &'static str

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/runners/fn.login_runner.html b/mcaptcha/api/v1/auth/runners/fn.login_runner.html index 0f38085c..bb4b32ad 100644 --- a/mcaptcha/api/v1/auth/runners/fn.login_runner.html +++ b/mcaptcha/api/v1/auth/runners/fn.login_runner.html @@ -4,6 +4,6 @@
pub async fn login_runner(
    payload: Login,
    data: &AppData
) -> Result<String, ServiceError>
Expand description

returns Ok(()) when everything checks out and the user is authenticated. Erros otherwise

-
+

Function mcaptcha::api::v1::auth::runners::login_runner

source · []
pub async fn login_runner(
    payload: Login,
    data: &AppData
) -> Result<String, ServiceError>
Expand description

returns Ok(()) when everything checks out and the user is authenticated. Erros otherwise

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/runners/fn.register_runner.html b/mcaptcha/api/v1/auth/runners/fn.register_runner.html index d46631da..807947e5 100644 --- a/mcaptcha/api/v1/auth/runners/fn.register_runner.html +++ b/mcaptcha/api/v1/auth/runners/fn.register_runner.html @@ -4,5 +4,5 @@
pub async fn register_runner(
    payload: &Register,
    data: &AppData
) -> Result<(), ServiceError>
+

Function mcaptcha::api::v1::auth::runners::register_runner

source · []
pub async fn register_runner(
    payload: &Register,
    data: &AppData
) -> Result<(), ServiceError>
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/runners/index.html b/mcaptcha/api/v1/auth/runners/index.html index eaaa0bf8..706fbf24 100644 --- a/mcaptcha/api/v1/auth/runners/index.html +++ b/mcaptcha/api/v1/auth/runners/index.html @@ -7,5 +7,5 @@

Module mcaptcha::api::v1::auth::runners

source · []

Structs

Functions

returns Ok(()) when everything checks out and the user is authenticated. Erros otherwise

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/runners/struct.Login.html b/mcaptcha/api/v1/auth/runners/struct.Login.html index 33b3474e..dae16f60 100644 --- a/mcaptcha/api/v1/auth/runners/struct.Login.html +++ b/mcaptcha/api/v1/auth/runners/struct.Login.html @@ -5,35 +5,35 @@
pub struct Login {
-    pub login: String,
-    pub password: String,
-}

Fields

login: Stringpassword: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub login: String, + pub password: String, +}

Fields

login: Stringpassword: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/runners/struct.Password.html b/mcaptcha/api/v1/auth/runners/struct.Password.html index 727ec187..82bb11b6 100644 --- a/mcaptcha/api/v1/auth/runners/struct.Password.html +++ b/mcaptcha/api/v1/auth/runners/struct.Password.html @@ -5,34 +5,34 @@
pub struct Password {
-    pub password: String,
-}

Fields

password: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub password: String, +}

Fields

password: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/runners/struct.Register.html b/mcaptcha/api/v1/auth/runners/struct.Register.html index f4a046c4..d7a44ce6 100644 --- a/mcaptcha/api/v1/auth/runners/struct.Register.html +++ b/mcaptcha/api/v1/auth/runners/struct.Register.html @@ -5,37 +5,37 @@
pub struct Register {
-    pub username: String,
-    pub password: String,
-    pub confirm_password: String,
-    pub email: Option<String>,
-}

Fields

username: Stringpassword: Stringconfirm_password: Stringemail: Option<String>

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub username: String, + pub password: String, + pub confirm_password: String, + pub email: Option<String>, +}

Fields

username: Stringpassword: Stringconfirm_password: Stringemail: Option<String>

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/struct.login.html b/mcaptcha/api/v1/auth/struct.login.html index 8b67c67f..376b278b 100644 --- a/mcaptcha/api/v1/auth/struct.login.html +++ b/mcaptcha/api/v1/auth/struct.login.html @@ -4,25 +4,25 @@
-

Struct mcaptcha::api::v1::auth::login

source · []
pub struct login;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::auth::login

source · []
pub struct login;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/struct.register.html b/mcaptcha/api/v1/auth/struct.register.html index 54a7ccb8..2b3723d7 100644 --- a/mcaptcha/api/v1/auth/struct.register.html +++ b/mcaptcha/api/v1/auth/struct.register.html @@ -4,25 +4,25 @@
pub struct register;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::auth::register

source · []
pub struct register;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/auth/struct.signout.html b/mcaptcha/api/v1/auth/struct.signout.html index cad2ee08..91837b43 100644 --- a/mcaptcha/api/v1/auth/struct.signout.html +++ b/mcaptcha/api/v1/auth/struct.signout.html @@ -4,25 +4,25 @@
pub struct signout;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::auth::signout

source · []
pub struct signout;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/fn.get_middleware.html b/mcaptcha/api/v1/fn.get_middleware.html index bd12b2aa..001bcd1e 100644 --- a/mcaptcha/api/v1/fn.get_middleware.html +++ b/mcaptcha/api/v1/fn.get_middleware.html @@ -4,5 +4,5 @@
pub fn get_middleware() -> Authentication<Routes>
+

Function mcaptcha::api::v1::get_middleware

source · []
pub fn get_middleware() -> Authentication<Routes>
\ No newline at end of file diff --git a/mcaptcha/api/v1/fn.services.html b/mcaptcha/api/v1/fn.services.html index 20927480..c6a049df 100644 --- a/mcaptcha/api/v1/fn.services.html +++ b/mcaptcha/api/v1/fn.services.html @@ -4,5 +4,5 @@
-

Function mcaptcha::api::v1::services

source · []
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/index.html b/mcaptcha/api/v1/index.html index cb16bda0..868696f0 100644 --- a/mcaptcha/api/v1/index.html +++ b/mcaptcha/api/v1/index.html @@ -3,10 +3,10 @@

\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/create/index.html b/mcaptcha/api/v1/mcaptcha/create/index.html index 5826f01b..e8b00370 100644 --- a/mcaptcha/api/v1/mcaptcha/create/index.html +++ b/mcaptcha/api/v1/mcaptcha/create/index.html @@ -6,5 +6,5 @@

Module create

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/create/runner/fn.create.html b/mcaptcha/api/v1/mcaptcha/create/runner/fn.create.html index e5e3ad7e..62d33f7c 100644 --- a/mcaptcha/api/v1/mcaptcha/create/runner/fn.create.html +++ b/mcaptcha/api/v1/mcaptcha/create/runner/fn.create.html @@ -4,5 +4,5 @@
pub async fn create(
    payload: &CreateCaptcha,
    data: &AppData,
    username: &str
) -> Result<MCaptchaDetails, ServiceError>
+

Function mcaptcha::api::v1::mcaptcha::create::runner::create

source · []
pub async fn create(
    payload: &CreateCaptcha,
    data: &AppData,
    username: &str
) -> Result<MCaptchaDetails, ServiceError>
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/create/runner/index.html b/mcaptcha/api/v1/mcaptcha/create/runner/index.html index cb3a4264..656eb4ec 100644 --- a/mcaptcha/api/v1/mcaptcha/create/runner/index.html +++ b/mcaptcha/api/v1/mcaptcha/create/runner/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/create/struct.CreateCaptcha.html b/mcaptcha/api/v1/mcaptcha/create/struct.CreateCaptcha.html index 533670d3..5cdc9134 100644 --- a/mcaptcha/api/v1/mcaptcha/create/struct.CreateCaptcha.html +++ b/mcaptcha/api/v1/mcaptcha/create/struct.CreateCaptcha.html @@ -5,30 +5,30 @@
pub struct CreateCaptcha {
-    pub levels: Vec<Level>,
-    pub duration: u32,
-    pub description: String,
-}

Fields

levels: Vec<Level>duration: u32description: String

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub levels: Vec<Level>, + pub duration: u32, + pub description: String, +}

Fields

levels: Vec<Level>duration: u32description: String

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/create/struct.MCaptchaDetails.html b/mcaptcha/api/v1/mcaptcha/create/struct.MCaptchaDetails.html index c4f169e1..4013fb36 100644 --- a/mcaptcha/api/v1/mcaptcha/create/struct.MCaptchaDetails.html +++ b/mcaptcha/api/v1/mcaptcha/create/struct.MCaptchaDetails.html @@ -5,35 +5,35 @@
pub struct MCaptchaDetails {
-    pub name: String,
-    pub key: String,
-}

Fields

name: Stringkey: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub name: String, + pub key: String, +}

Fields

name: Stringkey: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/create/struct.create.html b/mcaptcha/api/v1/mcaptcha/create/struct.create.html index fcbd8edc..b7356185 100644 --- a/mcaptcha/api/v1/mcaptcha/create/struct.create.html +++ b/mcaptcha/api/v1/mcaptcha/create/struct.create.html @@ -4,25 +4,25 @@
pub struct create;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::mcaptcha::create::create

source · []
pub struct create;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/delete/index.html b/mcaptcha/api/v1/mcaptcha/delete/index.html index 3e9fd754..dab8ec11 100644 --- a/mcaptcha/api/v1/mcaptcha/delete/index.html +++ b/mcaptcha/api/v1/mcaptcha/delete/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/delete/struct.DeleteCaptcha.html b/mcaptcha/api/v1/mcaptcha/delete/struct.DeleteCaptcha.html index 1c9e54dd..4171fee5 100644 --- a/mcaptcha/api/v1/mcaptcha/delete/struct.DeleteCaptcha.html +++ b/mcaptcha/api/v1/mcaptcha/delete/struct.DeleteCaptcha.html @@ -5,35 +5,35 @@
pub struct DeleteCaptcha {
-    pub key: String,
-    pub password: String,
-}

Fields

key: Stringpassword: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub key: String, + pub password: String, +}

Fields

key: Stringpassword: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/delete/struct.delete.html b/mcaptcha/api/v1/mcaptcha/delete/struct.delete.html index 09d66f0e..15968bbb 100644 --- a/mcaptcha/api/v1/mcaptcha/delete/struct.delete.html +++ b/mcaptcha/api/v1/mcaptcha/delete/struct.delete.html @@ -4,25 +4,25 @@
pub struct delete;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::mcaptcha::delete::delete

source · []
pub struct delete;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/fn.calculate.html b/mcaptcha/api/v1/mcaptcha/easy/fn.calculate.html index e7e16c1f..c6ba82c7 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/fn.calculate.html +++ b/mcaptcha/api/v1/mcaptcha/easy/fn.calculate.html @@ -4,5 +4,5 @@
pub fn calculate(
    tp: &TrafficPattern,
    strategy: &DefaultDifficultyStrategy
) -> Result<Vec<Level>, ServiceError>
+

Function mcaptcha::api::v1::mcaptcha::easy::calculate

source · []
pub fn calculate(
    tp: &TrafficPattern,
    strategy: &DefaultDifficultyStrategy
) -> Result<Vec<Level>, ServiceError>
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/fn.services.html b/mcaptcha/api/v1/mcaptcha/easy/fn.services.html index a557fb1f..28550d63 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/fn.services.html +++ b/mcaptcha/api/v1/mcaptcha/easy/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::mcaptcha::easy::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/index.html b/mcaptcha/api/v1/mcaptcha/easy/index.html index 31650320..dc461934 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/index.html +++ b/mcaptcha/api/v1/mcaptcha/easy/index.html @@ -8,5 +8,5 @@

Structs

User’s traffic pattern; used in generating a captcha configuration

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/routes/index.html b/mcaptcha/api/v1/mcaptcha/easy/routes/index.html index c258ec44..8e6540d5 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/routes/index.html +++ b/mcaptcha/api/v1/mcaptcha/easy/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/routes/struct.Easy.html b/mcaptcha/api/v1/mcaptcha/easy/routes/struct.Easy.html index fbb397be..dc306610 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/routes/struct.Easy.html +++ b/mcaptcha/api/v1/mcaptcha/easy/routes/struct.Easy.html @@ -5,28 +5,28 @@
pub struct Easy {
-    pub create: &'static str,
-    pub update: &'static str,
-}

Fields

create: &'static str

easy is using defaults

-
update: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub create: &'static str, + pub update: &'static str, +}

Fields

create: &'static str

easy is using defaults

+
update: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/struct.TrafficPatternRequest.html b/mcaptcha/api/v1/mcaptcha/easy/struct.TrafficPatternRequest.html index a3033908..d20c3916 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/struct.TrafficPatternRequest.html +++ b/mcaptcha/api/v1/mcaptcha/easy/struct.TrafficPatternRequest.html @@ -5,44 +5,44 @@
pub struct TrafficPatternRequest {
-    pub avg_traffic: u32,
-    pub peak_sustainable_traffic: u32,
-    pub broke_my_site_traffic: Option<u32>,
-    pub description: String,
+    pub avg_traffic: u32,
+    pub peak_sustainable_traffic: u32,
+    pub broke_my_site_traffic: Option<u32>,
+    pub description: String,
 }
Expand description

User’s traffic pattern; used in generating a captcha configuration

-

Fields

avg_traffic: u32

average traffic of user’s website

-
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

-
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

-
description: String

Captcha description

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

avg_traffic: u32

average traffic of user’s website

+
peak_sustainable_traffic: u32

the peak traffic that the user’s website can handle

+
broke_my_site_traffic: Option<u32>

trafic that bought the user’s website down; optional

+
description: String

Captcha description

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/struct.UpdateTrafficPattern.html b/mcaptcha/api/v1/mcaptcha/easy/struct.UpdateTrafficPattern.html index 7557edf8..1e1e217a 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/struct.UpdateTrafficPattern.html +++ b/mcaptcha/api/v1/mcaptcha/easy/struct.UpdateTrafficPattern.html @@ -6,34 +6,34 @@

UpdateTrafficPattern

pub struct UpdateTrafficPattern {
     pub pattern: TrafficPatternRequest,
-    pub key: String,
-}

Fields

pattern: TrafficPatternRequestkey: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub key: String, +}

Fields

pattern: TrafficPatternRequestkey: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/struct.create.html b/mcaptcha/api/v1/mcaptcha/easy/struct.create.html index b7a3a6e6..f329e146 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/struct.create.html +++ b/mcaptcha/api/v1/mcaptcha/easy/struct.create.html @@ -4,25 +4,25 @@
pub struct create;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::mcaptcha::easy::create

source · []
pub struct create;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/easy/struct.update.html b/mcaptcha/api/v1/mcaptcha/easy/struct.update.html index 624fdec3..ba860709 100644 --- a/mcaptcha/api/v1/mcaptcha/easy/struct.update.html +++ b/mcaptcha/api/v1/mcaptcha/easy/struct.update.html @@ -4,25 +4,25 @@
pub struct update;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::mcaptcha::easy::update

source · []
pub struct update;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/fn.get_random.html b/mcaptcha/api/v1/mcaptcha/fn.get_random.html index 01e9ce47..40f391bd 100644 --- a/mcaptcha/api/v1/mcaptcha/fn.get_random.html +++ b/mcaptcha/api/v1/mcaptcha/fn.get_random.html @@ -4,5 +4,5 @@
pub fn get_random(len: usize) -> String
+

Function mcaptcha::api::v1::mcaptcha::get_random

source · []
pub fn get_random(len: usize) -> String
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/fn.services.html b/mcaptcha/api/v1/mcaptcha/fn.services.html index b34113c6..e84bc9f7 100644 --- a/mcaptcha/api/v1/mcaptcha/fn.services.html +++ b/mcaptcha/api/v1/mcaptcha/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::mcaptcha::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/get/index.html b/mcaptcha/api/v1/mcaptcha/get/index.html index 21df49be..cd1e200c 100644 --- a/mcaptcha/api/v1/mcaptcha/get/index.html +++ b/mcaptcha/api/v1/mcaptcha/get/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/get/struct.I32Levels.html b/mcaptcha/api/v1/mcaptcha/get/struct.I32Levels.html index 26309c24..30a50f03 100644 --- a/mcaptcha/api/v1/mcaptcha/get/struct.I32Levels.html +++ b/mcaptcha/api/v1/mcaptcha/get/struct.I32Levels.html @@ -5,35 +5,35 @@
pub struct I32Levels {
-    pub difficulty_factor: i32,
-    pub visitor_threshold: i32,
-}

Fields

difficulty_factor: i32visitor_threshold: i32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub difficulty_factor: i32, + pub visitor_threshold: i32, +}

Fields

difficulty_factor: i32visitor_threshold: i32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/get/struct.Levels.html b/mcaptcha/api/v1/mcaptcha/get/struct.Levels.html index 715f5496..48921209 100644 --- a/mcaptcha/api/v1/mcaptcha/get/struct.Levels.html +++ b/mcaptcha/api/v1/mcaptcha/get/struct.Levels.html @@ -6,33 +6,33 @@

Levels

pub struct Levels {
     levels: I32Levels,
-}

Fields

levels: I32Levels

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Fields

levels: I32Levels

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/get/struct.get_captcha.html b/mcaptcha/api/v1/mcaptcha/get/struct.get_captcha.html index 93651e27..29d13842 100644 --- a/mcaptcha/api/v1/mcaptcha/get/struct.get_captcha.html +++ b/mcaptcha/api/v1/mcaptcha/get/struct.get_captcha.html @@ -4,25 +4,25 @@
pub struct get_captcha;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::mcaptcha::get::get_captcha

source · []
pub struct get_captcha;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/index.html b/mcaptcha/api/v1/mcaptcha/index.html index da2acfed..2bfc0f94 100644 --- a/mcaptcha/api/v1/mcaptcha/index.html +++ b/mcaptcha/api/v1/mcaptcha/index.html @@ -6,5 +6,5 @@

Module mcaptcha

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/routes/index.html b/mcaptcha/api/v1/mcaptcha/routes/index.html index a090753a..1aeed3c2 100644 --- a/mcaptcha/api/v1/mcaptcha/routes/index.html +++ b/mcaptcha/api/v1/mcaptcha/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/routes/struct.Captcha.html b/mcaptcha/api/v1/mcaptcha/routes/struct.Captcha.html index 91a57cdb..3ead8aab 100644 --- a/mcaptcha/api/v1/mcaptcha/routes/struct.Captcha.html +++ b/mcaptcha/api/v1/mcaptcha/routes/struct.Captcha.html @@ -5,32 +5,32 @@
pub struct Captcha {
-    pub create: &'static str,
-    pub update: &'static str,
-    pub get: &'static str,
-    pub delete: &'static str,
-    pub update_key: &'static str,
+    pub create: &'static str,
+    pub update: &'static str,
+    pub get: &'static str,
+    pub delete: &'static str,
+    pub update_key: &'static str,
     pub easy: Easy,
     pub stats: Stats,
-}

Fields

create: &'static strupdate: &'static strget: &'static strdelete: &'static strupdate_key: &'static streasy: Easystats: Stats

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Fields

create: &'static strupdate: &'static strget: &'static strdelete: &'static strupdate_key: &'static streasy: Easystats: Stats

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/stats/index.html b/mcaptcha/api/v1/mcaptcha/stats/index.html index 9e7f426e..59edc895 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/index.html +++ b/mcaptcha/api/v1/mcaptcha/stats/index.html @@ -6,5 +6,5 @@

Module stats

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/stats/routes/index.html b/mcaptcha/api/v1/mcaptcha/stats/routes/index.html index 50fd122e..3a4e5e47 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/routes/index.html +++ b/mcaptcha/api/v1/mcaptcha/stats/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/stats/routes/struct.Stats.html b/mcaptcha/api/v1/mcaptcha/stats/routes/struct.Stats.html index 1cda8f17..11268ae6 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/routes/struct.Stats.html +++ b/mcaptcha/api/v1/mcaptcha/stats/routes/struct.Stats.html @@ -5,26 +5,26 @@
pub struct Stats {
-    pub get: &'static str,
-}

Fields

get: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub get: &'static str, +}

Fields

get: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/stats/struct.StatsPayload.html b/mcaptcha/api/v1/mcaptcha/stats/struct.StatsPayload.html index 17ba9eb9..1cd28c8d 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/struct.StatsPayload.html +++ b/mcaptcha/api/v1/mcaptcha/stats/struct.StatsPayload.html @@ -5,34 +5,34 @@
pub struct StatsPayload {
-    pub key: String,
-}

Fields

key: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub key: String, +}

Fields

key: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/stats/struct.get.html b/mcaptcha/api/v1/mcaptcha/stats/struct.get.html index 58b10e11..a5728130 100644 --- a/mcaptcha/api/v1/mcaptcha/stats/struct.get.html +++ b/mcaptcha/api/v1/mcaptcha/stats/struct.get.html @@ -4,25 +4,25 @@
pub struct get;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::mcaptcha::stats::get

source · []
pub struct get;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/update/index.html b/mcaptcha/api/v1/mcaptcha/update/index.html index 8ea874a1..0e63f80b 100644 --- a/mcaptcha/api/v1/mcaptcha/update/index.html +++ b/mcaptcha/api/v1/mcaptcha/update/index.html @@ -6,5 +6,5 @@

Module update

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/update/runner/fn.update_captcha.html b/mcaptcha/api/v1/mcaptcha/update/runner/fn.update_captcha.html index 65b402ae..f685ac5c 100644 --- a/mcaptcha/api/v1/mcaptcha/update/runner/fn.update_captcha.html +++ b/mcaptcha/api/v1/mcaptcha/update/runner/fn.update_captcha.html @@ -4,5 +4,5 @@
pub async fn update_captcha(
    payload: &UpdateCaptcha,
    data: &AppData,
    username: &str
) -> Result<(), ServiceError>
+

Function mcaptcha::api::v1::mcaptcha::update::runner::update_captcha

source · []
pub async fn update_captcha(
    payload: &UpdateCaptcha,
    data: &AppData,
    username: &str
) -> Result<(), ServiceError>
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/update/runner/index.html b/mcaptcha/api/v1/mcaptcha/update/runner/index.html index fb1c0b18..0ced166c 100644 --- a/mcaptcha/api/v1/mcaptcha/update/runner/index.html +++ b/mcaptcha/api/v1/mcaptcha/update/runner/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/update/struct.UpdateCaptcha.html b/mcaptcha/api/v1/mcaptcha/update/struct.UpdateCaptcha.html index fb3b8c35..620bb108 100644 --- a/mcaptcha/api/v1/mcaptcha/update/struct.UpdateCaptcha.html +++ b/mcaptcha/api/v1/mcaptcha/update/struct.UpdateCaptcha.html @@ -5,31 +5,31 @@
pub struct UpdateCaptcha {
-    pub levels: Vec<Level>,
-    pub duration: u32,
-    pub description: String,
-    pub key: String,
-}

Fields

levels: Vec<Level>duration: u32description: Stringkey: String

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub levels: Vec<Level>, + pub duration: u32, + pub description: String, + pub key: String, +}

Fields

levels: Vec<Level>duration: u32description: Stringkey: String

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/update/struct.update_captcha.html b/mcaptcha/api/v1/mcaptcha/update/struct.update_captcha.html index 677fd555..49af1a04 100644 --- a/mcaptcha/api/v1/mcaptcha/update/struct.update_captcha.html +++ b/mcaptcha/api/v1/mcaptcha/update/struct.update_captcha.html @@ -4,25 +4,25 @@
pub struct update_captcha;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::mcaptcha::update::update_captcha

source · []
pub struct update_captcha;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/mcaptcha/update/struct.update_key.html b/mcaptcha/api/v1/mcaptcha/update/struct.update_key.html index ce16364a..8d09c8d4 100644 --- a/mcaptcha/api/v1/mcaptcha/update/struct.update_key.html +++ b/mcaptcha/api/v1/mcaptcha/update/struct.update_key.html @@ -4,25 +4,25 @@
pub struct update_key;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::api::v1::mcaptcha::update::update_key

source · []
pub struct update_key;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html b/mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html index b9d4edf9..e4acb290 100644 --- a/mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html +++ b/mcaptcha/api/v1/meta/enum.BuildDetailsBuilderError.html @@ -6,39 +6,39 @@

BuildDetailsBuilderError

#[non_exhaustive]
 pub enum BuildDetailsBuilderError {
-    UninitializedField(&'static str),
-    ValidationError(String),
+    UninitializedField(&'static str),
+    ValidationError(String),
 }
Expand description

Error type for BuildDetailsBuilder

-

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

UninitializedField(&'static str)

Uninitialized field

-

ValidationError(String)

Custom validation error

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

UninitializedField(&'static str)

Uninitialized field

+

ValidationError(String)

Custom validation error

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/enum.HealthBuilderError.html b/mcaptcha/api/v1/meta/enum.HealthBuilderError.html index d6ba616f..7477f013 100644 --- a/mcaptcha/api/v1/meta/enum.HealthBuilderError.html +++ b/mcaptcha/api/v1/meta/enum.HealthBuilderError.html @@ -6,39 +6,39 @@

HealthBuilderError

#[non_exhaustive]
 pub enum HealthBuilderError {
-    UninitializedField(&'static str),
-    ValidationError(String),
+    UninitializedField(&'static str),
+    ValidationError(String),
 }
Expand description

Error type for HealthBuilder

-

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

UninitializedField(&'static str)

Uninitialized field

-

ValidationError(String)

Custom validation error

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants (Non-exhaustive)

This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.

UninitializedField(&'static str)

Uninitialized field

+

ValidationError(String)

Custom validation error

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/fn.services.html b/mcaptcha/api/v1/meta/fn.services.html index 9aabd2c9..b2e87467 100644 --- a/mcaptcha/api/v1/meta/fn.services.html +++ b/mcaptcha/api/v1/meta/fn.services.html @@ -4,5 +4,5 @@
-

Function mcaptcha::api::v1::meta::services

source · []
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::meta::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/index.html b/mcaptcha/api/v1/meta/index.html index 8542fa1e..557b62e1 100644 --- a/mcaptcha/api/v1/meta/index.html +++ b/mcaptcha/api/v1/meta/index.html @@ -15,5 +15,5 @@

Error type for BuildDetailsBuilder

Error type for HealthBuilder

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/routes/index.html b/mcaptcha/api/v1/meta/routes/index.html index 907b3d41..1c64e169 100644 --- a/mcaptcha/api/v1/meta/routes/index.html +++ b/mcaptcha/api/v1/meta/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/routes/struct.Meta.html b/mcaptcha/api/v1/meta/routes/struct.Meta.html index 6844fb26..b3e82d00 100644 --- a/mcaptcha/api/v1/meta/routes/struct.Meta.html +++ b/mcaptcha/api/v1/meta/routes/struct.Meta.html @@ -5,27 +5,27 @@
pub struct Meta {
-    pub build_details: &'static str,
-    pub health: &'static str,
-}

Fields

build_details: &'static strhealth: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub build_details: &'static str, + pub health: &'static str, +}

Fields

build_details: &'static strhealth: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/struct.BuildDetails.html b/mcaptcha/api/v1/meta/struct.BuildDetails.html index 0227fc9b..7f757970 100644 --- a/mcaptcha/api/v1/meta/struct.BuildDetails.html +++ b/mcaptcha/api/v1/meta/struct.BuildDetails.html @@ -5,35 +5,35 @@
pub struct BuildDetails {
-    pub version: &'static str,
-    pub git_commit_hash: &'static str,
-}

Fields

version: &'static strgit_commit_hash: &'static str

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub version: &'static str, + pub git_commit_hash: &'static str, +}

Fields

version: &'static strgit_commit_hash: &'static str

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/struct.BuildDetailsBuilder.html b/mcaptcha/api/v1/meta/struct.BuildDetailsBuilder.html index a1e25b1b..f6dbb249 100644 --- a/mcaptcha/api/v1/meta/struct.BuildDetailsBuilder.html +++ b/mcaptcha/api/v1/meta/struct.BuildDetailsBuilder.html @@ -5,38 +5,38 @@
pub struct BuildDetailsBuilder {
-    version: Option<&'static str>,
-    git_commit_hash: Option<&'static str>,
+    version: Option<&'static str>,
+    git_commit_hash: Option<&'static str>,
 }
Expand description

Builder for BuildDetails.

-

Fields

version: Option<&'static str>git_commit_hash: Option<&'static str>

Implementations

Builds a new BuildDetails.

+

Fields

version: Option<&'static str>git_commit_hash: Option<&'static str>

Implementations

Builds a new BuildDetails.

Errors

If a required field has not been initialized.

Create an empty builder, with all fields set to None or PhantomData.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Returns the “default value” for a type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/struct.Health.html b/mcaptcha/api/v1/meta/struct.Health.html index 20987fb9..b07d1bc2 100644 --- a/mcaptcha/api/v1/meta/struct.Health.html +++ b/mcaptcha/api/v1/meta/struct.Health.html @@ -5,36 +5,36 @@
pub struct Health {
-    db: bool,
-    redis: Option<bool>,
+    db: bool,
+    redis: Option<bool>,
 }
Expand description

Health check return datatype

-

Fields

db: boolredis: Option<bool>

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

db: boolredis: Option<bool>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/struct.HealthBuilder.html b/mcaptcha/api/v1/meta/struct.HealthBuilder.html index 427e57b5..416748d9 100644 --- a/mcaptcha/api/v1/meta/struct.HealthBuilder.html +++ b/mcaptcha/api/v1/meta/struct.HealthBuilder.html @@ -5,38 +5,38 @@
pub struct HealthBuilder {
-    db: Option<bool>,
-    redis: Option<Option<bool>>,
+    db: Option<bool>,
+    redis: Option<Option<bool>>,
 }
Expand description

Builder for Health.

-

Fields

db: Option<bool>redis: Option<Option<bool>>

Implementations

Builds a new Health.

+

Fields

db: Option<bool>redis: Option<Option<bool>>

Implementations

Builds a new Health.

Errors

If a required field has not been initialized.

Create an empty builder, with all fields set to None or PhantomData.

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Returns the “default value” for a type. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Returns the “default value” for a type. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/struct.build_details.html b/mcaptcha/api/v1/meta/struct.build_details.html index 48d44b35..c9ac7204 100644 --- a/mcaptcha/api/v1/meta/struct.build_details.html +++ b/mcaptcha/api/v1/meta/struct.build_details.html @@ -5,25 +5,25 @@
pub struct build_details;
Expand description

emmits build details of the bninary

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/meta/struct.health.html b/mcaptcha/api/v1/meta/struct.health.html index ad61c203..9a1e11e3 100644 --- a/mcaptcha/api/v1/meta/struct.health.html +++ b/mcaptcha/api/v1/meta/struct.health.html @@ -5,25 +5,25 @@
pub struct health;
Expand description

checks all components of the system

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/add/index.html b/mcaptcha/api/v1/notifications/add/index.html index 9f9ea1fb..b6d63dab 100644 --- a/mcaptcha/api/v1/notifications/add/index.html +++ b/mcaptcha/api/v1/notifications/add/index.html @@ -6,5 +6,5 @@

Module add

Structs

route handler that adds a notification message

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/add/struct.AddNotificationRequest.html b/mcaptcha/api/v1/notifications/add/struct.AddNotificationRequest.html index eb37a655..beb21dd4 100644 --- a/mcaptcha/api/v1/notifications/add/struct.AddNotificationRequest.html +++ b/mcaptcha/api/v1/notifications/add/struct.AddNotificationRequest.html @@ -5,40 +5,40 @@
pub struct AddNotificationRequest {
-    pub to: String,
-    pub heading: String,
-    pub message: String,
-}

Fields

to: Stringheading: Stringmessage: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub to: String, + pub heading: String, + pub message: String, +}

Fields

to: Stringheading: Stringmessage: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/add/struct.add_notification.html b/mcaptcha/api/v1/notifications/add/struct.add_notification.html index 51bee966..1d10a8b7 100644 --- a/mcaptcha/api/v1/notifications/add/struct.add_notification.html +++ b/mcaptcha/api/v1/notifications/add/struct.add_notification.html @@ -5,25 +5,25 @@
pub struct add_notification;
Expand description

route handler that adds a notification message

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/fn.services.html b/mcaptcha/api/v1/notifications/fn.services.html index 620b1ec1..b531bd1a 100644 --- a/mcaptcha/api/v1/notifications/fn.services.html +++ b/mcaptcha/api/v1/notifications/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::notifications::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/get/index.html b/mcaptcha/api/v1/notifications/get/index.html index aa343314..4ed6b961 100644 --- a/mcaptcha/api/v1/notifications/get/index.html +++ b/mcaptcha/api/v1/notifications/get/index.html @@ -6,5 +6,5 @@

Module get

Structs

route handler that gets all unread notifications

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/get/struct.NotificationResp.html b/mcaptcha/api/v1/notifications/get/struct.NotificationResp.html index df1896dd..a87f17d2 100644 --- a/mcaptcha/api/v1/notifications/get/struct.NotificationResp.html +++ b/mcaptcha/api/v1/notifications/get/struct.NotificationResp.html @@ -5,42 +5,42 @@
pub struct NotificationResp {
-    pub name: String,
-    pub heading: String,
-    pub message: String,
-    pub received: i64,
-    pub id: i32,
-}

Fields

name: Stringheading: Stringmessage: Stringreceived: i64id: i32

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub name: String, + pub heading: String, + pub message: String, + pub received: i64, + pub id: i32, +}

Fields

name: Stringheading: Stringmessage: Stringreceived: i64id: i32

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/get/struct.get_notification.html b/mcaptcha/api/v1/notifications/get/struct.get_notification.html index 02b6bea3..3da4251c 100644 --- a/mcaptcha/api/v1/notifications/get/struct.get_notification.html +++ b/mcaptcha/api/v1/notifications/get/struct.get_notification.html @@ -5,25 +5,25 @@
pub struct get_notification;
Expand description

route handler that gets all unread notifications

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/index.html b/mcaptcha/api/v1/notifications/index.html index d6140569..35fd90a2 100644 --- a/mcaptcha/api/v1/notifications/index.html +++ b/mcaptcha/api/v1/notifications/index.html @@ -6,5 +6,5 @@

Module notifications

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/mark_read/index.html b/mcaptcha/api/v1/notifications/mark_read/index.html index b80c646b..4cf28d5c 100644 --- a/mcaptcha/api/v1/notifications/mark_read/index.html +++ b/mcaptcha/api/v1/notifications/mark_read/index.html @@ -6,5 +6,5 @@

Module mark_read

Structs

route handler that marks a notification read

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/mark_read/struct.MarkReadReq.html b/mcaptcha/api/v1/notifications/mark_read/struct.MarkReadReq.html index f2a7264f..b4ad51e9 100644 --- a/mcaptcha/api/v1/notifications/mark_read/struct.MarkReadReq.html +++ b/mcaptcha/api/v1/notifications/mark_read/struct.MarkReadReq.html @@ -5,28 +5,28 @@
pub struct MarkReadReq {
-    pub id: i32,
-}

Fields

id: i32

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub id: i32, +}

Fields

id: i32

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/mark_read/struct.mark_read.html b/mcaptcha/api/v1/notifications/mark_read/struct.mark_read.html index 7fbb40f2..ca6dc272 100644 --- a/mcaptcha/api/v1/notifications/mark_read/struct.mark_read.html +++ b/mcaptcha/api/v1/notifications/mark_read/struct.mark_read.html @@ -5,25 +5,25 @@
pub struct mark_read;
Expand description

route handler that marks a notification read

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/routes/index.html b/mcaptcha/api/v1/notifications/routes/index.html index 4f4b0152..540233ce 100644 --- a/mcaptcha/api/v1/notifications/routes/index.html +++ b/mcaptcha/api/v1/notifications/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/notifications/routes/struct.Notifications.html b/mcaptcha/api/v1/notifications/routes/struct.Notifications.html index f7f0b2a3..35a2603a 100644 --- a/mcaptcha/api/v1/notifications/routes/struct.Notifications.html +++ b/mcaptcha/api/v1/notifications/routes/struct.Notifications.html @@ -5,28 +5,28 @@
pub struct Notifications {
-    pub add: &'static str,
-    pub mark_read: &'static str,
-    pub get: &'static str,
-}

Fields

add: &'static strmark_read: &'static strget: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub add: &'static str, + pub mark_read: &'static str, + pub get: &'static str, +}

Fields

add: &'static strmark_read: &'static strget: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/fn.services.html b/mcaptcha/api/v1/pow/fn.services.html index 1b461076..7209d47b 100644 --- a/mcaptcha/api/v1/pow/fn.services.html +++ b/mcaptcha/api/v1/pow/fn.services.html @@ -4,5 +4,5 @@
-

Function mcaptcha::api::v1::pow::services

source · []
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::api::v1::pow::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/get_config/fn.init_mcaptcha.html b/mcaptcha/api/v1/pow/get_config/fn.init_mcaptcha.html index 3ca71ad1..eb155342 100644 --- a/mcaptcha/api/v1/pow/get_config/fn.init_mcaptcha.html +++ b/mcaptcha/api/v1/pow/get_config/fn.init_mcaptcha.html @@ -4,8 +4,8 @@
pub async fn init_mcaptcha(
    data: &AppData,
    key: &str
) -> Result<(), ServiceError>
Expand description

Call this when [MCaptcha][libmcaptcha::MCaptcha] is not in master.

+

Function mcaptcha::api::v1::pow::get_config::init_mcaptcha

source · []
pub async fn init_mcaptcha(
    data: &AppData,
    key: &str
) -> Result<(), ServiceError>
Expand description

Call this when [MCaptcha][libmcaptcha::MCaptcha] is not in master.

This fn gets mcaptcha config from database, builds [Defense][libmcaptcha::Defense], creates [MCaptcha][libmcaptcha::MCaptcha] and adds it to [Master][libmcaptcha::Defense]

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/get_config/index.html b/mcaptcha/api/v1/pow/get_config/index.html index 0638939c..78bb418e 100644 --- a/mcaptcha/api/v1/pow/get_config/index.html +++ b/mcaptcha/api/v1/pow/get_config/index.html @@ -8,5 +8,5 @@

get PoW configuration for an mcaptcha key

Functions

Call this when [MCaptcha][libmcaptcha::MCaptcha] is not in master.

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/get_config/struct.GetConfigPayload.html b/mcaptcha/api/v1/pow/get_config/struct.GetConfigPayload.html index fd17bb60..b6c64c45 100644 --- a/mcaptcha/api/v1/pow/get_config/struct.GetConfigPayload.html +++ b/mcaptcha/api/v1/pow/get_config/struct.GetConfigPayload.html @@ -5,34 +5,34 @@
pub struct GetConfigPayload {
-    pub key: String,
-}

Fields

key: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub key: String, +}

Fields

key: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/get_config/struct.get_config.html b/mcaptcha/api/v1/pow/get_config/struct.get_config.html index 78641881..0ec4ad0a 100644 --- a/mcaptcha/api/v1/pow/get_config/struct.get_config.html +++ b/mcaptcha/api/v1/pow/get_config/struct.get_config.html @@ -5,25 +5,25 @@
pub struct get_config;
Expand description

get PoW configuration for an mcaptcha key

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/index.html b/mcaptcha/api/v1/pow/index.html index afb6d022..6fab449c 100644 --- a/mcaptcha/api/v1/pow/index.html +++ b/mcaptcha/api/v1/pow/index.html @@ -3,11 +3,11 @@

+

Module pow

Module mcaptcha::api::v1::pow

source · []

Re-exports

-
pub use super::mcaptcha::get::I32Levels;

Modules

+
pub use super::mcaptcha::get::I32Levels;

Modules

PoW Verification module

PoW success token module

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/routes/index.html b/mcaptcha/api/v1/pow/routes/index.html index 5bfbe272..c20beca1 100644 --- a/mcaptcha/api/v1/pow/routes/index.html +++ b/mcaptcha/api/v1/pow/routes/index.html @@ -6,5 +6,5 @@

Module routes

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/routes/macro.rm_scope.html b/mcaptcha/api/v1/pow/routes/macro.rm_scope.html index 12ddfb28..afee9d7f 100644 --- a/mcaptcha/api/v1/pow/routes/macro.rm_scope.html +++ b/mcaptcha/api/v1/pow/routes/macro.rm_scope.html @@ -7,5 +7,5 @@

Macro mcaptcha::api::v1::pow::routes::rm_scope

source · []
macro_rules! rm_scope {
     ($name:ident) => { ... };
 }
-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/routes/struct.PoW.html b/mcaptcha/api/v1/pow/routes/struct.PoW.html index 6788df21..67ae37ec 100644 --- a/mcaptcha/api/v1/pow/routes/struct.PoW.html +++ b/mcaptcha/api/v1/pow/routes/struct.PoW.html @@ -5,32 +5,32 @@
pub struct PoW {
-    pub get_config: &'static str,
-    pub verify_pow: &'static str,
-    pub validate_captcha_token: &'static str,
-    pub scope: &'static str,
-}

Fields

get_config: &'static strverify_pow: &'static strvalidate_captcha_token: &'static strscope: &'static str

Implementations

remove scope for $name route

-

remove scope for $name route

-

remove scope for $name route

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub get_config: &'static str, + pub verify_pow: &'static str, + pub validate_captcha_token: &'static str, + pub scope: &'static str, +}

Fields

get_config: &'static strverify_pow: &'static strvalidate_captcha_token: &'static strscope: &'static str

Implementations

remove scope for $name route

+

remove scope for $name route

+

remove scope for $name route

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/verify_pow/index.html b/mcaptcha/api/v1/pow/verify_pow/index.html index 8e2b2246..8ae0232b 100644 --- a/mcaptcha/api/v1/pow/verify_pow/index.html +++ b/mcaptcha/api/v1/pow/verify_pow/index.html @@ -10,5 +10,5 @@ valid PoW

route handler that verifies PoW and issues a solution token if verification is successful

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/verify_pow/struct.ValidationToken.html b/mcaptcha/api/v1/pow/verify_pow/struct.ValidationToken.html index ce38835d..215eb5cf 100644 --- a/mcaptcha/api/v1/pow/verify_pow/struct.ValidationToken.html +++ b/mcaptcha/api/v1/pow/verify_pow/struct.ValidationToken.html @@ -5,36 +5,36 @@
pub struct ValidationToken {
-    pub token: String,
+    pub token: String,
 }
Expand description

validation token that clients receive as proof for submiting valid PoW

-

Fields

token: String

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Fields

token: String

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/verify_pow/struct.verify_pow.html b/mcaptcha/api/v1/pow/verify_pow/struct.verify_pow.html index d21d41d4..abfebefa 100644 --- a/mcaptcha/api/v1/pow/verify_pow/struct.verify_pow.html +++ b/mcaptcha/api/v1/pow/verify_pow/struct.verify_pow.html @@ -6,25 +6,25 @@

verify_pow

pub struct verify_pow;
Expand description

route handler that verifies PoW and issues a solution token if verification is successful

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/verify_token/index.html b/mcaptcha/api/v1/pow/verify_token/index.html index 705c9192..836fb429 100644 --- a/mcaptcha/api/v1/pow/verify_token/index.html +++ b/mcaptcha/api/v1/pow/verify_token/index.html @@ -7,5 +7,5 @@

Module mcaptcha::api::v1::pow::verify_token

source · []
Expand description

PoW success token module

Structs

route hander that validates a PoW solution token

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/verify_token/struct.CaptchaValidateResp.html b/mcaptcha/api/v1/pow/verify_token/struct.CaptchaValidateResp.html index 4f31fb38..5719517c 100644 --- a/mcaptcha/api/v1/pow/verify_token/struct.CaptchaValidateResp.html +++ b/mcaptcha/api/v1/pow/verify_token/struct.CaptchaValidateResp.html @@ -5,34 +5,34 @@
pub struct CaptchaValidateResp {
-    pub valid: bool,
-}

Fields

valid: bool

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub valid: bool, +}

Fields

valid: bool

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/pow/verify_token/struct.validate_captcha_token.html b/mcaptcha/api/v1/pow/verify_token/struct.validate_captcha_token.html index 48b22eee..a0d4297c 100644 --- a/mcaptcha/api/v1/pow/verify_token/struct.validate_captcha_token.html +++ b/mcaptcha/api/v1/pow/verify_token/struct.validate_captcha_token.html @@ -5,25 +5,25 @@
pub struct validate_captcha_token;
Expand description

route hander that validates a PoW solution token

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/routes/constant.ROUTES.html b/mcaptcha/api/v1/routes/constant.ROUTES.html index fced104f..e6e602d4 100644 --- a/mcaptcha/api/v1/routes/constant.ROUTES.html +++ b/mcaptcha/api/v1/routes/constant.ROUTES.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::api::v1::routes::ROUTES

source · []
pub const ROUTES: Routes;
+

Constant mcaptcha::api::v1::routes::ROUTES

source · []
pub const ROUTES: Routes;
\ No newline at end of file diff --git a/mcaptcha/api/v1/routes/index.html b/mcaptcha/api/v1/routes/index.html index 2d6c0f7b..8cdf67c3 100644 --- a/mcaptcha/api/v1/routes/index.html +++ b/mcaptcha/api/v1/routes/index.html @@ -6,5 +6,5 @@

Module routes

+
\ No newline at end of file diff --git a/mcaptcha/api/v1/routes/struct.Routes.html b/mcaptcha/api/v1/routes/struct.Routes.html index b229b238..8e848378 100644 --- a/mcaptcha/api/v1/routes/struct.Routes.html +++ b/mcaptcha/api/v1/routes/struct.Routes.html @@ -11,25 +11,25 @@ pub meta: Meta, pub pow: PoW, pub notifications: Notifications, -}

Fields

auth: Authaccount: Accountcaptcha: Captchameta: Metapow: PoWnotifications: Notifications

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Fields

auth: Authaccount: Accountcaptcha: Captchameta: Metapow: PoWnotifications: Notifications

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/api/v1/struct.RedirectQuery.html b/mcaptcha/api/v1/struct.RedirectQuery.html index 63a094f4..edc709d7 100644 --- a/mcaptcha/api/v1/struct.RedirectQuery.html +++ b/mcaptcha/api/v1/struct.RedirectQuery.html @@ -5,27 +5,27 @@
pub struct RedirectQuery {
-    pub redirect_to: Option<String>,
-}

Fields

redirect_to: Option<String>

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub redirect_to: Option<String>, +}

Fields

redirect_to: Option<String>

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/constant.CACHE_AGE.html b/mcaptcha/constant.CACHE_AGE.html index 3c4bad72..b6170b8a 100644 --- a/mcaptcha/constant.CACHE_AGE.html +++ b/mcaptcha/constant.CACHE_AGE.html @@ -4,5 +4,5 @@
pub const CACHE_AGE: u32 = 604800;
+

Constant mcaptcha::CACHE_AGE

source · []
pub const CACHE_AGE: u32 = 604800;
\ No newline at end of file diff --git a/mcaptcha/constant.COMPILED_DATE.html b/mcaptcha/constant.COMPILED_DATE.html index c0a16b8a..a5fd7bf6 100644 --- a/mcaptcha/constant.COMPILED_DATE.html +++ b/mcaptcha/constant.COMPILED_DATE.html @@ -4,5 +4,5 @@
pub const COMPILED_DATE: &str = "22-06-30";
+

Constant mcaptcha::COMPILED_DATE

source · []
pub const COMPILED_DATE: &str = "22-07-01";
\ No newline at end of file diff --git a/mcaptcha/constant.DOCS.html b/mcaptcha/constant.DOCS.html index 1711438a..27a3176b 100644 --- a/mcaptcha/constant.DOCS.html +++ b/mcaptcha/constant.DOCS.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::DOCS

source · []
pub const DOCS: Docs;
+

Constant mcaptcha::DOCS

source · []
pub const DOCS: Docs;
\ No newline at end of file diff --git a/mcaptcha/constant.GIT_COMMIT_HASH.html b/mcaptcha/constant.GIT_COMMIT_HASH.html index be2e0643..93269121 100644 --- a/mcaptcha/constant.GIT_COMMIT_HASH.html +++ b/mcaptcha/constant.GIT_COMMIT_HASH.html @@ -4,5 +4,5 @@
pub const GIT_COMMIT_HASH: &str = "5daeffd6fbd421b0bffa4111f62ae3ac8f663bff";
+

Constant mcaptcha::GIT_COMMIT_HASH

source · []
pub const GIT_COMMIT_HASH: &str = "5daeffd6fbd421b0bffa4111f62ae3ac8f663bff";
\ No newline at end of file diff --git a/mcaptcha/constant.PAGES.html b/mcaptcha/constant.PAGES.html index c744e4ff..705d64a6 100644 --- a/mcaptcha/constant.PAGES.html +++ b/mcaptcha/constant.PAGES.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::PAGES

source · []
pub const PAGES: Routes;
+

Constant mcaptcha::PAGES

source · []
pub const PAGES: Routes;
\ No newline at end of file diff --git a/mcaptcha/constant.PKG_DESCRIPTION.html b/mcaptcha/constant.PKG_DESCRIPTION.html index bc5631fe..c0c51438 100644 --- a/mcaptcha/constant.PKG_DESCRIPTION.html +++ b/mcaptcha/constant.PKG_DESCRIPTION.html @@ -4,5 +4,5 @@
pub const PKG_DESCRIPTION: &str = "mCaptcha - a PoW-based CAPTCHA system";
+

Constant mcaptcha::PKG_DESCRIPTION

source · []
pub const PKG_DESCRIPTION: &str = "mCaptcha - a PoW-based CAPTCHA system";
\ No newline at end of file diff --git a/mcaptcha/constant.PKG_HOMEPAGE.html b/mcaptcha/constant.PKG_HOMEPAGE.html index 72046945..0c55aa0e 100644 --- a/mcaptcha/constant.PKG_HOMEPAGE.html +++ b/mcaptcha/constant.PKG_HOMEPAGE.html @@ -4,5 +4,5 @@
pub const PKG_HOMEPAGE: &str = "https://mcaptcha.org";
+

Constant mcaptcha::PKG_HOMEPAGE

source · []
pub const PKG_HOMEPAGE: &str = "https://mcaptcha.org";
\ No newline at end of file diff --git a/mcaptcha/constant.PKG_NAME.html b/mcaptcha/constant.PKG_NAME.html index de5ecd60..8bcc8e58 100644 --- a/mcaptcha/constant.PKG_NAME.html +++ b/mcaptcha/constant.PKG_NAME.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::PKG_NAME

source · []
pub const PKG_NAME: &str = "mcaptcha";
+

Constant mcaptcha::PKG_NAME

source · []
pub const PKG_NAME: &str = "mcaptcha";
\ No newline at end of file diff --git a/mcaptcha/constant.V1_API_ROUTES.html b/mcaptcha/constant.V1_API_ROUTES.html index 27c06dce..c2fd972b 100644 --- a/mcaptcha/constant.V1_API_ROUTES.html +++ b/mcaptcha/constant.V1_API_ROUTES.html @@ -4,5 +4,5 @@
pub const V1_API_ROUTES: Routes;
+

Constant mcaptcha::V1_API_ROUTES

source · []
pub const V1_API_ROUTES: Routes;
\ No newline at end of file diff --git a/mcaptcha/constant.VERSION.html b/mcaptcha/constant.VERSION.html index e9aad8fb..e2b2080f 100644 --- a/mcaptcha/constant.VERSION.html +++ b/mcaptcha/constant.VERSION.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::VERSION

source · []
pub const VERSION: &str = "0.1.0";
+

Constant mcaptcha::VERSION

source · []
pub const VERSION: &str = "0.1.0";
\ No newline at end of file diff --git a/mcaptcha/constant.WIDGET_ROUTES.html b/mcaptcha/constant.WIDGET_ROUTES.html index 8293092d..053c4f8f 100644 --- a/mcaptcha/constant.WIDGET_ROUTES.html +++ b/mcaptcha/constant.WIDGET_ROUTES.html @@ -4,5 +4,5 @@
pub const WIDGET_ROUTES: Widget;
+

Constant mcaptcha::WIDGET_ROUTES

source · []
pub const WIDGET_ROUTES: Widget;
\ No newline at end of file diff --git a/mcaptcha/data/enum.SystemGroup.html b/mcaptcha/data/enum.SystemGroup.html index 05a9638e..bf210cdc 100644 --- a/mcaptcha/data/enum.SystemGroup.html +++ b/mcaptcha/data/enum.SystemGroup.html @@ -10,25 +10,25 @@ }
Expand description

Represents mCaptcha cache and master system. When Redis is configured, SystemGroup::Redis is used and in its absense, SystemGroup::Embedded is used

-

Variants

Embedded(System<HashCache, EmbeddedMaster>)

Redis(System<RedisCache, RedisMaster>)

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Variants

Embedded(System<HashCache, EmbeddedMaster>)

Redis(System<RedisCache, RedisMaster>)

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/data/index.html b/mcaptcha/data/index.html index 04eee4e5..77b4e4c3 100644 --- a/mcaptcha/data/index.html +++ b/mcaptcha/data/index.html @@ -14,5 +14,5 @@ When Redis is configured, SystemGroup::Embedded is used

Type Definitions

Mailer data type AsyncSmtpTransport

-
+
\ No newline at end of file diff --git a/mcaptcha/data/macro.enum_system_actor.html b/mcaptcha/data/macro.enum_system_actor.html index d734dc60..6038c305 100644 --- a/mcaptcha/data/macro.enum_system_actor.html +++ b/mcaptcha/data/macro.enum_system_actor.html @@ -7,5 +7,5 @@

Macro mcaptcha::data::enum_system_actor

source · []
macro_rules! enum_system_actor {
     ($name:ident, $type:ident) => { ... };
 }
-
+
\ No newline at end of file diff --git a/mcaptcha/data/macro.enum_system_wrapper.html b/mcaptcha/data/macro.enum_system_wrapper.html index 8c74cb03..4005f39f 100644 --- a/mcaptcha/data/macro.enum_system_wrapper.html +++ b/mcaptcha/data/macro.enum_system_wrapper.html @@ -7,5 +7,5 @@

Macro mcaptcha::data::enum_system_wrapper

source · []
macro_rules! enum_system_wrapper {
     ($name:ident, $type:ty, $return_type:ty) => { ... };
 }
-
+
\ No newline at end of file diff --git a/mcaptcha/data/struct.Data.html b/mcaptcha/data/struct.Data.html index 08b43e47..56875927 100644 --- a/mcaptcha/data/struct.Data.html +++ b/mcaptcha/data/struct.Data.html @@ -5,39 +5,39 @@
pub struct Data {
-    pub db: Box<dyn MCDatabase>,
+    pub db: Box<dyn MCDatabase>,
     pub creds: Config,
     pub captcha: SystemGroup,
-    pub mailer: Option<AsyncSmtpTransport<Tokio1Executor>>,
+    pub mailer: Option<AsyncSmtpTransport<Tokio1Executor>>,
     pub settings: Settings,
-    pub stats: Box<dyn Stats>,
+    pub stats: Box<dyn Stats>,
 }
Expand description

App data

-

Fields

db: Box<dyn MCDatabase>

database ops defined by db crates

+

Fields

db: Box<dyn MCDatabase>

database ops defined by db crates

creds: Config

credential management configuration

captcha: SystemGroup

mCaptcha system: Redis cache, etc.

-
mailer: Option<AsyncSmtpTransport<Tokio1Executor>>

email client

+
mailer: Option<AsyncSmtpTransport<Tokio1Executor>>

email client

settings: Settings

app settings

-
stats: Box<dyn Stats>

stats recorder

-

Implementations

create new instance of app data

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+
stats: Box<dyn Stats>

stats recorder

+

Implementations

create new instance of app data

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/data/type.Mailer.html b/mcaptcha/data/type.Mailer.html index f97a7a1b..e70d7d24 100644 --- a/mcaptcha/data/type.Mailer.html +++ b/mcaptcha/data/type.Mailer.html @@ -5,5 +5,5 @@

Type Definition mcaptcha::data::Mailer

source · []
Expand description

Mailer data type AsyncSmtpTransport

-
+
\ No newline at end of file diff --git a/mcaptcha/date/constant.DAY.html b/mcaptcha/date/constant.DAY.html index 45dc19e9..78129e3d 100644 --- a/mcaptcha/date/constant.DAY.html +++ b/mcaptcha/date/constant.DAY.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::date::DAY

source · []
pub const DAY: i64 = HOUR * 24; // 86_400i64
+

Constant mcaptcha::date::DAY

source · []
pub const DAY: i64 = HOUR * 24; // 86_400i64
\ No newline at end of file diff --git a/mcaptcha/date/constant.HOUR.html b/mcaptcha/date/constant.HOUR.html index f9e63267..02cbfe8c 100644 --- a/mcaptcha/date/constant.HOUR.html +++ b/mcaptcha/date/constant.HOUR.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::date::HOUR

source · []
pub const HOUR: i64 = MINUTE * 60; // 3_600i64
+

Constant mcaptcha::date::HOUR

source · []
pub const HOUR: i64 = MINUTE * 60; // 3_600i64
\ No newline at end of file diff --git a/mcaptcha/date/constant.MINUTE.html b/mcaptcha/date/constant.MINUTE.html index d7f29edd..c5d76ab1 100644 --- a/mcaptcha/date/constant.MINUTE.html +++ b/mcaptcha/date/constant.MINUTE.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::date::MINUTE

source · []
pub const MINUTE: i64 = 60;
+

Constant mcaptcha::date::MINUTE

source · []
pub const MINUTE: i64 = 60;
\ No newline at end of file diff --git a/mcaptcha/date/constant.WEEK.html b/mcaptcha/date/constant.WEEK.html index 7a69a3c1..488340fe 100644 --- a/mcaptcha/date/constant.WEEK.html +++ b/mcaptcha/date/constant.WEEK.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::date::WEEK

source · []
pub const WEEK: i64 = DAY * 7; // 604_800i64
+

Constant mcaptcha::date::WEEK

source · []
pub const WEEK: i64 = DAY * 7; // 604_800i64
\ No newline at end of file diff --git a/mcaptcha/date/index.html b/mcaptcha/date/index.html index 08f2e923..ca997687 100644 --- a/mcaptcha/date/index.html +++ b/mcaptcha/date/index.html @@ -6,5 +6,5 @@

Module date

+
\ No newline at end of file diff --git a/mcaptcha/date/struct.Date.html b/mcaptcha/date/struct.Date.html index 7acd4a85..95de79be 100644 --- a/mcaptcha/date/struct.Date.html +++ b/mcaptcha/date/struct.Date.html @@ -6,33 +6,33 @@

Date

pub struct Date {
     pub time: OffsetDateTime,
-}

Fields

time: OffsetDateTime

Implementations

print relative time from date

-

print date

-

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Fields

time: OffsetDateTime

Implementations

print relative time from date

+

print date

+

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/demo/constant.DEMO_PASSWORD.html b/mcaptcha/demo/constant.DEMO_PASSWORD.html index 5cb4a9a6..f8d19220 100644 --- a/mcaptcha/demo/constant.DEMO_PASSWORD.html +++ b/mcaptcha/demo/constant.DEMO_PASSWORD.html @@ -4,6 +4,6 @@
pub const DEMO_PASSWORD: &str = "password";
Expand description

Demo password

-
+

Constant mcaptcha::demo::DEMO_PASSWORD

source · []
pub const DEMO_PASSWORD: &str = "password";
Expand description

Demo password

+
\ No newline at end of file diff --git a/mcaptcha/demo/constant.DEMO_USER.html b/mcaptcha/demo/constant.DEMO_USER.html index 11d37f0d..90fd159a 100644 --- a/mcaptcha/demo/constant.DEMO_USER.html +++ b/mcaptcha/demo/constant.DEMO_USER.html @@ -4,6 +4,6 @@
pub const DEMO_USER: &str = "aaronsw";
Expand description

Demo username

-
+

Constant mcaptcha::demo::DEMO_USER

source · []
pub const DEMO_USER: &str = "aaronsw";
Expand description

Demo username

+
\ No newline at end of file diff --git a/mcaptcha/demo/index.html b/mcaptcha/demo/index.html index 15259eae..e71c4863 100644 --- a/mcaptcha/demo/index.html +++ b/mcaptcha/demo/index.html @@ -8,5 +8,5 @@

Constants

Demo password

Demo username

-
+
\ No newline at end of file diff --git a/mcaptcha/demo/struct.DemoUser.html b/mcaptcha/demo/struct.DemoUser.html index e8fc31de..c9d7187f 100644 --- a/mcaptcha/demo/struct.DemoUser.html +++ b/mcaptcha/demo/struct.DemoUser.html @@ -5,27 +5,27 @@
pub struct DemoUser {
-    handle: JoinHandle<()>,
-}

Fields

handle: JoinHandle<()>

Implementations

register demo user runner

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ handle: JoinHandle<()>, +}

Fields

handle: JoinHandle<()>

Implementations

register demo user runner

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/docs/constant.DOCS.html b/mcaptcha/docs/constant.DOCS.html index 065c3981..d7e7a563 100644 --- a/mcaptcha/docs/constant.DOCS.html +++ b/mcaptcha/docs/constant.DOCS.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::docs::DOCS

source · []
pub const DOCS: Docs;
+

Constant mcaptcha::docs::DOCS

source · []
pub const DOCS: Docs;
\ No newline at end of file diff --git a/mcaptcha/docs/constant.OPEN_API_SPEC.html b/mcaptcha/docs/constant.OPEN_API_SPEC.html index 682446ea..27585243 100644 --- a/mcaptcha/docs/constant.OPEN_API_SPEC.html +++ b/mcaptcha/docs/constant.OPEN_API_SPEC.html @@ -4,5 +4,5 @@
const OPEN_API_SPEC: &str = "openapi: 3.0.0\ninfo:\n  version: 0.1.0\n  title: mCaptcha/guard\nservers:\n  - url: /\npaths:\n  /api/v1/signup:\n    post:\n      summary: Registration endpoint\n      operationId: registerUser\n      tags:\n        - user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/RegisterUser\'\n            example:\n              username: testuser\n              password: mysuperlongandsecurepassword\n              email: testuser@example.com\n      responses:\n        \'200\':\n          description: Successful registration\n        \'400\':\n          description: \'Bad request: username contains profainity/blacklisted words or email not acceptable or password too long/short or duplicate username/password\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/signin:\n    post:\n      summary: Login endpoint\n      operationId: loginUser\n      tags:\n        - user\n        - authentication\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/LoginUser\'\n            example:\n              username: testuser\n              password: mysuperlongandsecurepassword\n      responses:\n        \'200\':\n          description: Successful authentication\n        \'401\':\n          description: \'authentication failed, wrong password\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'404\':\n          description: username not found\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/signout:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Signout endpoint\n      operationId: signoutUser\n      tags:\n        - user\n        - authentication\n      responses:\n        \'200\':\n          description: OK\n  /api/v1/account/delete:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Delete account\n      operationId: deleteAccount\n      tags:\n        - user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/DeleteUser\'\n            example:\n              password: mysuperlongandsecurepassword\n      responses:\n        \'200\':\n          description: OK\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'404\':\n          description: username not found\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/account/username/exists:\n    post:\n      summary: Check if username exists\n      operationId: usernameExists\n      tags:\n        - user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/UserDetailCheck\'\n            example:\n              val: testuser\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/UserDetailCheckRes\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/account/email/exists:\n    post:\n      summary: Check if email exists\n      operationId: emailExists\n      tags:\n        - user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/UserDetailCheck\'\n            example:\n              val: testuser@example.com\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/UserDetailCheckRes\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/meta/health:\n    get:\n      summary: Health check\n      operationId: healthCheck\n      tags:\n        - meta\n        - health\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Health\'\n  /api/v1/meta/build:\n    get:\n      summary: Get server binary build details\n      operationId: buildDetails\n      tags:\n        - meta\n        - build\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/BuildDetails\'\n  /api/v1/mcaptcha/domain/token/add:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Add token for registered domain\n      operationId: addToken\n      tags:\n        - mcaptcha\n        - domain\n        - token\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/MCaptchaID\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/MCaptchaDetails\'\n        \'400\':\n          description: \'Bad request: Submited URI is not a URI or duplicate token name\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/update:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Update token key\n      operationId: updateTokenKey\n      tags:\n        - mcaptcha\n        - domain\n        - token\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/MCaptchaID\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/MCaptchaDetails\'\n        \'400\':\n          description: \'Bad request: Submited URI is not a URI or duplicate token name\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/get:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Get token key\n      operationId: getTokenKey\n      tags:\n        - mcaptcha\n        - domain\n        - token\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/MCaptchaID\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/MCaptchaDetails\'\n        \'400\':\n          description: \'Bad request: Submited URI is not a URI\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'404\':\n          description: token name not found\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/delete:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Delete token from mcaptcha\n      operationId: deleteToken\n      tags:\n        - mcaptcha\n        - domain\n        - token\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/MCaptchaID\'\n      responses:\n        \'200\':\n          description: OK\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/levels/add:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Add levels to a token\n      operationId: addTokenLevels\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/AddLevels\'\n      responses:\n        \'200\':\n          description: OK\n        \'400\':\n          description: duplicate visitor count or difficulty_factor is zero or difficulty_factor decreases with increase in visitor count\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/levels/update:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Update levels of a token\n      operationId: updateTokenLevels\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/AddLevels\'\n      responses:\n        \'200\':\n          description: OK\n        \'400\':\n          description: duplicate visitor count or difficulty_factor is zero or difficulty_factor decreases with increase in visitor count\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/levels/delete:\n    post:\n      security:\n        - cookieAuth: []\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n      summary: Delete levels of a token\n      operationId: deleteTokenLevels\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/AddLevels\'\n      responses:\n        \'200\':\n          description: OK\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/levels/get:\n    post:\n      security:\n        - cookieAuth: []\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n      summary: Get levels of a token\n      operationId: getTokenLevels\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/AddLevels\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Levels\'\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/token/get:\n    post:\n      security:\n        - cookieAuth: []\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n        - duration\n      summary: Get duration of a token\n      operationId: getTokenDuration\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/GetDuration\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Duration\'\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/token/update:\n    post:\n      security:\n        - cookieAuth: []\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n        - duration\n      summary: update duration of a token\n      operationId: updateTokenDuration\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/UpdateDuration\'\n      responses:\n        \'200\':\n          description: OK\n        \'400\':\n          description: \'Bad request: Duration must be greater than 0\'\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\ncomponents:\n  schemas:\n    RegisterUser:\n      type: object\n      required:\n        - username\n        - password\n        - email\n      properties:\n        username:\n          type: string\n        email:\n          type: string\n        password:\n          type: string\n          format: password\n    LoginUser:\n      type: object\n      required:\n        - username\n        - password\n      properties:\n        username:\n          type: string\n        password:\n          type: string\n          format: password\n    DeleteUser:\n      type: object\n      required:\n        - password\n      properties:\n        password:\n          type: string\n          format: password\n    Error:\n      type: object\n      required:\n        - error\n      properties:\n        error:\n          type: string\n    User:\n      type: object\n      required:\n        - id\n        - name\n      properties:\n        id:\n          type: integer\n          format: int64\n        name:\n          type: string\n    UserDetailCheck:\n      type: object\n      required:\n        - val\n      properties:\n        val:\n          type: string\n    Health:\n      type: object\n      required:\n        - db\n      properties:\n        db:\n          type: boolean\n    UserDetailCheckRes:\n      type: object\n      required:\n        - exists\n      properties:\n        val:\n          type: boolean\n    BuildDetails:\n      type: object\n      required:\n        - version\n        - git_commit_hash\n      properties:\n        version:\n          type: string\n        git_commit_hash:\n          type: string\n    AddDomain:\n      type: object\n      required:\n        - name\n      properties:\n        name:\n          type: string\n    DomainVerificationChallenge:\n      type: object\n      required:\n        - verification_challenge\n      properties:\n        verification_challenge:\n          type: string\n    MCaptchaID:\n      type: object\n      required:\n        - name\n        - domain\n      properties:\n        name:\n          type: string\n        domain:\n          type: string\n    MCaptchaDetails:\n      type: object\n      required:\n        - name\n        - key\n      properties:\n        name:\n          type: string\n        key:\n          type: string\n    Level:\n      type: object\n      required:\n        - visitor_threshold\n        - difficulty_factor\n      properties:\n        visitor_threshold:\n          type: number\n          minimum: 1\n          maximum: 2147483647\n        difficulty_factor:\n          type: number\n          minimum: 1\n    GetLevels:\n      type: object\n      required:\n        - token\n      properties:\n        token:\n          type: string\n    Levels:\n      type: array\n      items:\n        $ref: \'#/components/schemas/Level\'\n    AddLevels:\n      type: object\n      required:\n        - name\n        - levels\n      properties:\n        name:\n          type: string\n        levels:\n          type: array\n          items:\n            $ref: \'#/components/schemas/Level\'\n    GetDuration:\n      type: object\n      required:\n        - token\n      properties:\n        token:\n          type: string\n    Duration:\n      type: object\n      required:\n        - duration\n      properties:\n        duration:\n          type: number\n          minimum: 1\n          maximum: 2147483647\n    UpdateDuration:\n      type: object\n      required:\n        - duration\n        - token_name\n      properties:\n        token_name:\n          type: string\n        duration:\n          type: number\n          minimum: 1\n          maximum: 2147483647\n  securitySchemes:\n    cookieAuth:\n      type: apiKey\n      in: cookie\n      name: Authorization\n";
+

Constant mcaptcha::docs::OPEN_API_SPEC

source · []
const OPEN_API_SPEC: &str = "openapi: 3.0.0\ninfo:\n  version: 0.1.0\n  title: mCaptcha/guard\nservers:\n  - url: /\npaths:\n  /api/v1/signup:\n    post:\n      summary: Registration endpoint\n      operationId: registerUser\n      tags:\n        - user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/RegisterUser\'\n            example:\n              username: testuser\n              password: mysuperlongandsecurepassword\n              email: testuser@example.com\n      responses:\n        \'200\':\n          description: Successful registration\n        \'400\':\n          description: \'Bad request: username contains profainity/blacklisted words or email not acceptable or password too long/short or duplicate username/password\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/signin:\n    post:\n      summary: Login endpoint\n      operationId: loginUser\n      tags:\n        - user\n        - authentication\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/LoginUser\'\n            example:\n              username: testuser\n              password: mysuperlongandsecurepassword\n      responses:\n        \'200\':\n          description: Successful authentication\n        \'401\':\n          description: \'authentication failed, wrong password\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'404\':\n          description: username not found\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/signout:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Signout endpoint\n      operationId: signoutUser\n      tags:\n        - user\n        - authentication\n      responses:\n        \'200\':\n          description: OK\n  /api/v1/account/delete:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Delete account\n      operationId: deleteAccount\n      tags:\n        - user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/DeleteUser\'\n            example:\n              password: mysuperlongandsecurepassword\n      responses:\n        \'200\':\n          description: OK\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'404\':\n          description: username not found\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/account/username/exists:\n    post:\n      summary: Check if username exists\n      operationId: usernameExists\n      tags:\n        - user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/UserDetailCheck\'\n            example:\n              val: testuser\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/UserDetailCheckRes\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/account/email/exists:\n    post:\n      summary: Check if email exists\n      operationId: emailExists\n      tags:\n        - user\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/UserDetailCheck\'\n            example:\n              val: testuser@example.com\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/UserDetailCheckRes\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/meta/health:\n    get:\n      summary: Health check\n      operationId: healthCheck\n      tags:\n        - meta\n        - health\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Health\'\n  /api/v1/meta/build:\n    get:\n      summary: Get server binary build details\n      operationId: buildDetails\n      tags:\n        - meta\n        - build\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/BuildDetails\'\n  /api/v1/mcaptcha/domain/token/add:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Add token for registered domain\n      operationId: addToken\n      tags:\n        - mcaptcha\n        - domain\n        - token\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/MCaptchaID\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/MCaptchaDetails\'\n        \'400\':\n          description: \'Bad request: Submited URI is not a URI or duplicate token name\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/update:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Update token key\n      operationId: updateTokenKey\n      tags:\n        - mcaptcha\n        - domain\n        - token\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/MCaptchaID\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/MCaptchaDetails\'\n        \'400\':\n          description: \'Bad request: Submited URI is not a URI or duplicate token name\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/get:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Get token key\n      operationId: getTokenKey\n      tags:\n        - mcaptcha\n        - domain\n        - token\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/MCaptchaID\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/MCaptchaDetails\'\n        \'400\':\n          description: \'Bad request: Submited URI is not a URI\'\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'404\':\n          description: token name not found\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/delete:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Delete token from mcaptcha\n      operationId: deleteToken\n      tags:\n        - mcaptcha\n        - domain\n        - token\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/MCaptchaID\'\n      responses:\n        \'200\':\n          description: OK\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/levels/add:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Add levels to a token\n      operationId: addTokenLevels\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/AddLevels\'\n      responses:\n        \'200\':\n          description: OK\n        \'400\':\n          description: duplicate visitor count or difficulty_factor is zero or difficulty_factor decreases with increase in visitor count\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/levels/update:\n    post:\n      security:\n        - cookieAuth: []\n      summary: Update levels of a token\n      operationId: updateTokenLevels\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/AddLevels\'\n      responses:\n        \'200\':\n          description: OK\n        \'400\':\n          description: duplicate visitor count or difficulty_factor is zero or difficulty_factor decreases with increase in visitor count\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'401\':\n          description: authentication failed\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/levels/delete:\n    post:\n      security:\n        - cookieAuth: []\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n      summary: Delete levels of a token\n      operationId: deleteTokenLevels\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/AddLevels\'\n      responses:\n        \'200\':\n          description: OK\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/levels/get:\n    post:\n      security:\n        - cookieAuth: []\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n      summary: Get levels of a token\n      operationId: getTokenLevels\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/AddLevels\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Levels\'\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/token/get:\n    post:\n      security:\n        - cookieAuth: []\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n        - duration\n      summary: Get duration of a token\n      operationId: getTokenDuration\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/GetDuration\'\n      responses:\n        \'200\':\n          description: OK\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Duration\'\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n  /api/v1/mcaptcha/domain/token/token/update:\n    post:\n      security:\n        - cookieAuth: []\n      tags:\n        - mcaptcha\n        - domain\n        - token\n        - levels\n        - duration\n      summary: update duration of a token\n      operationId: updateTokenDuration\n      requestBody:\n        required: true\n        content:\n          application/json:\n            schema:\n              $ref: \'#/components/schemas/UpdateDuration\'\n      responses:\n        \'200\':\n          description: OK\n        \'400\':\n          description: \'Bad request: Duration must be greater than 0\'\n        \'401\':\n          description: (cookie)authentication required or wrong password\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\n        \'500\':\n          description: Internal server error\n          content:\n            application/json:\n              schema:\n                $ref: \'#/components/schemas/Error\'\ncomponents:\n  schemas:\n    RegisterUser:\n      type: object\n      required:\n        - username\n        - password\n        - email\n      properties:\n        username:\n          type: string\n        email:\n          type: string\n        password:\n          type: string\n          format: password\n    LoginUser:\n      type: object\n      required:\n        - username\n        - password\n      properties:\n        username:\n          type: string\n        password:\n          type: string\n          format: password\n    DeleteUser:\n      type: object\n      required:\n        - password\n      properties:\n        password:\n          type: string\n          format: password\n    Error:\n      type: object\n      required:\n        - error\n      properties:\n        error:\n          type: string\n    User:\n      type: object\n      required:\n        - id\n        - name\n      properties:\n        id:\n          type: integer\n          format: int64\n        name:\n          type: string\n    UserDetailCheck:\n      type: object\n      required:\n        - val\n      properties:\n        val:\n          type: string\n    Health:\n      type: object\n      required:\n        - db\n      properties:\n        db:\n          type: boolean\n    UserDetailCheckRes:\n      type: object\n      required:\n        - exists\n      properties:\n        val:\n          type: boolean\n    BuildDetails:\n      type: object\n      required:\n        - version\n        - git_commit_hash\n      properties:\n        version:\n          type: string\n        git_commit_hash:\n          type: string\n    AddDomain:\n      type: object\n      required:\n        - name\n      properties:\n        name:\n          type: string\n    DomainVerificationChallenge:\n      type: object\n      required:\n        - verification_challenge\n      properties:\n        verification_challenge:\n          type: string\n    MCaptchaID:\n      type: object\n      required:\n        - name\n        - domain\n      properties:\n        name:\n          type: string\n        domain:\n          type: string\n    MCaptchaDetails:\n      type: object\n      required:\n        - name\n        - key\n      properties:\n        name:\n          type: string\n        key:\n          type: string\n    Level:\n      type: object\n      required:\n        - visitor_threshold\n        - difficulty_factor\n      properties:\n        visitor_threshold:\n          type: number\n          minimum: 1\n          maximum: 2147483647\n        difficulty_factor:\n          type: number\n          minimum: 1\n    GetLevels:\n      type: object\n      required:\n        - token\n      properties:\n        token:\n          type: string\n    Levels:\n      type: array\n      items:\n        $ref: \'#/components/schemas/Level\'\n    AddLevels:\n      type: object\n      required:\n        - name\n        - levels\n      properties:\n        name:\n          type: string\n        levels:\n          type: array\n          items:\n            $ref: \'#/components/schemas/Level\'\n    GetDuration:\n      type: object\n      required:\n        - token\n      properties:\n        token:\n          type: string\n    Duration:\n      type: object\n      required:\n        - duration\n      properties:\n        duration:\n          type: number\n          minimum: 1\n          maximum: 2147483647\n    UpdateDuration:\n      type: object\n      required:\n        - duration\n        - token_name\n      properties:\n        token_name:\n          type: string\n        duration:\n          type: number\n          minimum: 1\n          maximum: 2147483647\n  securitySchemes:\n    cookieAuth:\n      type: apiKey\n      in: cookie\n      name: Authorization\n";
\ No newline at end of file diff --git a/mcaptcha/docs/fn.handle_embedded_file.html b/mcaptcha/docs/fn.handle_embedded_file.html index c625021e..0a6fd3a1 100644 --- a/mcaptcha/docs/fn.handle_embedded_file.html +++ b/mcaptcha/docs/fn.handle_embedded_file.html @@ -4,5 +4,5 @@
pub fn handle_embedded_file(path: &str) -> HttpResponse
+

Function mcaptcha::docs::handle_embedded_file

source · []
pub fn handle_embedded_file(path: &str) -> HttpResponse
\ No newline at end of file diff --git a/mcaptcha/docs/fn.services.html b/mcaptcha/docs/fn.services.html index bffc6d64..e8ad7195 100644 --- a/mcaptcha/docs/fn.services.html +++ b/mcaptcha/docs/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::docs::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/docs/index.html b/mcaptcha/docs/index.html index d0eb6b40..1ff335dc 100644 --- a/mcaptcha/docs/index.html +++ b/mcaptcha/docs/index.html @@ -8,5 +8,5 @@

Structs

Constants

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/docs/routes/index.html b/mcaptcha/docs/routes/index.html index 089846e8..0b9811c1 100644 --- a/mcaptcha/docs/routes/index.html +++ b/mcaptcha/docs/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/docs/routes/struct.Docs.html b/mcaptcha/docs/routes/struct.Docs.html index d05a8789..ac9d11c4 100644 --- a/mcaptcha/docs/routes/struct.Docs.html +++ b/mcaptcha/docs/routes/struct.Docs.html @@ -5,28 +5,28 @@
pub struct Docs {
-    pub home: &'static str,
-    pub spec: &'static str,
-    pub assets: &'static str,
-}

Fields

home: &'static strspec: &'static strassets: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub home: &'static str, + pub spec: &'static str, + pub assets: &'static str, +}

Fields

home: &'static strspec: &'static strassets: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/docs/struct.Asset.html b/mcaptcha/docs/struct.Asset.html index d636e5aa..b98abadb 100644 --- a/mcaptcha/docs/struct.Asset.html +++ b/mcaptcha/docs/struct.Asset.html @@ -4,29 +4,29 @@
struct Asset;

Implementations

Get an embedded file and its metadata.

-

Iterates over the file paths in the folder.

-

Trait Implementations

Get an embedded file and its metadata. Read more

-

Iterates over the file paths in the folder. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::docs::Asset

source · []
struct Asset;

Implementations

Get an embedded file and its metadata.

+

Iterates over the file paths in the folder.

+

Trait Implementations

Get an embedded file and its metadata. Read more

+

Iterates over the file paths in the folder. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/docs/struct.dist.html b/mcaptcha/docs/struct.dist.html index 2e20c67f..d07e699c 100644 --- a/mcaptcha/docs/struct.dist.html +++ b/mcaptcha/docs/struct.dist.html @@ -4,25 +4,25 @@
-

Struct mcaptcha::docs::dist

source · []
pub struct dist;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::docs::dist

source · []
pub struct dist;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/docs/struct.index.html b/mcaptcha/docs/struct.index.html index f6930474..5e3a83bc 100644 --- a/mcaptcha/docs/struct.index.html +++ b/mcaptcha/docs/struct.index.html @@ -4,25 +4,25 @@
pub struct index;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::docs::index

source · []
pub struct index;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/docs/struct.spec.html b/mcaptcha/docs/struct.spec.html index b7a615ba..e21a1ccb 100644 --- a/mcaptcha/docs/struct.spec.html +++ b/mcaptcha/docs/struct.spec.html @@ -4,25 +4,25 @@
-

Struct mcaptcha::docs::spec

source · []
pub struct spec;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::docs::spec

source · []
pub struct spec;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/email/index.html b/mcaptcha/email/index.html index 4610e00c..adadca4d 100644 --- a/mcaptcha/email/index.html +++ b/mcaptcha/email/index.html @@ -6,5 +6,5 @@

Module email

Modules

Email operations: verification, notification, etc

-
+
\ No newline at end of file diff --git a/mcaptcha/email/verification/constant.PAGE.html b/mcaptcha/email/verification/constant.PAGE.html index 56c6b805..6e5b7917 100644 --- a/mcaptcha/email/verification/constant.PAGE.html +++ b/mcaptcha/email/verification/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "Login";
+

Constant mcaptcha::email::verification::PAGE

source · []
const PAGE: &str = "Login";
\ No newline at end of file diff --git a/mcaptcha/email/verification/fn.verification.html b/mcaptcha/email/verification/fn.verification.html index fc12492f..b475689c 100644 --- a/mcaptcha/email/verification/fn.verification.html +++ b/mcaptcha/email/verification/fn.verification.html @@ -4,5 +4,5 @@
async fn verification(
    data: &Data,
    to: &str,
    verification_link: &str
) -> Result<(), ServiceError>
+

Function mcaptcha::email::verification::verification

source · []
async fn verification(
    data: &Data,
    to: &str,
    verification_link: &str
) -> Result<(), ServiceError>
\ No newline at end of file diff --git a/mcaptcha/email/verification/index.html b/mcaptcha/email/verification/index.html index 4a4cfca9..f2924f84 100644 --- a/mcaptcha/email/verification/index.html +++ b/mcaptcha/email/verification/index.html @@ -8,5 +8,5 @@

Structs

IndexPage 🔒

Constants

PAGE 🔒

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/email/verification/struct.IndexPage.html b/mcaptcha/email/verification/struct.IndexPage.html index 03506abf..9d97fce6 100644 --- a/mcaptcha/email/verification/struct.IndexPage.html +++ b/mcaptcha/email/verification/struct.IndexPage.html @@ -5,33 +5,33 @@
struct IndexPage<'a> {
-    verification_link: &'a str,
-}

Fields

verification_link: &'a str

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ verification_link: &'a str, +}

Fields

verification_link: &'a str

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/errors/enum.PageError.html b/mcaptcha/errors/enum.PageError.html index 7f46bc85..45fab1f3 100644 --- a/mcaptcha/errors/enum.PageError.html +++ b/mcaptcha/errors/enum.PageError.html @@ -7,39 +7,39 @@

Enum mcaptcha::errors::PageError

source · []
pub enum PageError {
     InternalServerError,
     ServiceError(ServiceError),
-}

Variants

InternalServerError

ServiceError(ServiceError)

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Creates full response for error. Read more

-

Returns appropriate status code for error. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Variants

InternalServerError

ServiceError(ServiceError)

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Creates full response for error. Read more

+

Returns appropriate status code for error. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/errors/enum.ServiceError.html b/mcaptcha/errors/enum.ServiceError.html index 109f28de..ba1db71d 100644 --- a/mcaptcha/errors/enum.ServiceError.html +++ b/mcaptcha/errors/enum.ServiceError.html @@ -38,46 +38,46 @@ profile

TokenNotFound

token not found

CaptchaError(CaptchaError)

DBError(DBErrorWrapper)

CaptchaNotFound

captcha not found

TrafficPatternNotFound

Traffic pattern not found

-

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

Converts to this type from the input type.

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Creates full response for error. Read more

-

Returns appropriate status code for error. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

Converts to this type from the input type.

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Creates full response for error. Read more

+

Returns appropriate status code for error. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/errors/index.html b/mcaptcha/errors/index.html index 9dce0af6..937308f7 100644 --- a/mcaptcha/errors/index.html +++ b/mcaptcha/errors/index.html @@ -7,5 +7,5 @@

Module mcaptcha::errors

source · []

Structs

Enums

Type Definitions

-
+
\ No newline at end of file diff --git a/mcaptcha/errors/struct.DBErrorWrapper.html b/mcaptcha/errors/struct.DBErrorWrapper.html index 4a6d3e56..a1369373 100644 --- a/mcaptcha/errors/struct.DBErrorWrapper.html +++ b/mcaptcha/errors/struct.DBErrorWrapper.html @@ -4,35 +4,35 @@
pub struct DBErrorWrapper(DBError);

Tuple Fields

0: DBError

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::errors::DBErrorWrapper

source · []
pub struct DBErrorWrapper(DBError);

Tuple Fields

0: DBError

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/errors/struct.ErrorToResponse.html b/mcaptcha/errors/struct.ErrorToResponse.html index e569afca..a6a03abe 100644 --- a/mcaptcha/errors/struct.ErrorToResponse.html +++ b/mcaptcha/errors/struct.ErrorToResponse.html @@ -5,28 +5,28 @@
pub struct ErrorToResponse {
-    pub error: String,
-}

Fields

error: String

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub error: String, +}

Fields

error: String

Trait Implementations

Deserialize this value from the given Serde deserializer. Read more

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/errors/struct.SmtpErrorWrapper.html b/mcaptcha/errors/struct.SmtpErrorWrapper.html index 56e01cf6..d736aa89 100644 --- a/mcaptcha/errors/struct.SmtpErrorWrapper.html +++ b/mcaptcha/errors/struct.SmtpErrorWrapper.html @@ -4,35 +4,35 @@
pub struct SmtpErrorWrapper(SmtpError);

Tuple Fields

0: SmtpError

Trait Implementations

Formats the value using the given formatter. Read more

-

Formats the value using the given formatter. Read more

-

The lower-level source of this error, if any. Read more

-
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

-
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

-
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::errors::SmtpErrorWrapper

source · []
pub struct SmtpErrorWrapper(SmtpError);

Tuple Fields

0: SmtpError

Trait Implementations

Formats the value using the given formatter. Read more

+

Formats the value using the given formatter. Read more

+

The lower-level source of this error, if any. Read more

+
🔬 This is a nightly-only experimental API. (backtrace)

Returns a stack backtrace, if available, of where this error occurred. Read more

+
👎 Deprecated since 1.42.0:

use the Display impl or to_string()

+
👎 Deprecated since 1.33.0:

replaced by Error::source, which can support downcasting

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

Converts the given value to a String. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

Converts the given value to a String. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/errors/type.PageResult.html b/mcaptcha/errors/type.PageResult.html index e75d5f59..f099795f 100644 --- a/mcaptcha/errors/type.PageResult.html +++ b/mcaptcha/errors/type.PageResult.html @@ -4,5 +4,5 @@
-

Type Definition mcaptcha::errors::PageResult

source · []
pub type PageResult<V> = Result<V, PageError>;
+

Type Definition mcaptcha::errors::PageResult

source · []
pub type PageResult<V> = Result<V, PageError>;
\ No newline at end of file diff --git a/mcaptcha/errors/type.ServiceResult.html b/mcaptcha/errors/type.ServiceResult.html index 5ec216a4..84241e0a 100644 --- a/mcaptcha/errors/type.ServiceResult.html +++ b/mcaptcha/errors/type.ServiceResult.html @@ -4,5 +4,5 @@
-

Type Definition mcaptcha::errors::ServiceResult

source · []
pub type ServiceResult<V> = Result<V, ServiceError>;
+

Type Definition mcaptcha::errors::ServiceResult

source · []
pub type ServiceResult<V> = Result<V, ServiceError>;
\ No newline at end of file diff --git a/mcaptcha/fn.get_identity_service.html b/mcaptcha/fn.get_identity_service.html index 941dea73..f90283ad 100644 --- a/mcaptcha/fn.get_identity_service.html +++ b/mcaptcha/fn.get_identity_service.html @@ -4,5 +4,5 @@
pub fn get_identity_service(
    settings: &Settings
) -> IdentityService<CookieIdentityPolicy>
+

Function mcaptcha::get_identity_service

source · []
pub fn get_identity_service(
    settings: &Settings
) -> IdentityService<CookieIdentityPolicy>
\ No newline at end of file diff --git a/mcaptcha/fn.get_json_err.html b/mcaptcha/fn.get_json_err.html index 6092a2b1..3775234e 100644 --- a/mcaptcha/fn.get_json_err.html +++ b/mcaptcha/fn.get_json_err.html @@ -4,5 +4,5 @@
pub fn get_json_err() -> JsonConfig
+

Function mcaptcha::get_json_err

source · []
pub fn get_json_err() -> JsonConfig
\ No newline at end of file diff --git a/mcaptcha/fn.main.html b/mcaptcha/fn.main.html index 8c2790a6..ada87954 100644 --- a/mcaptcha/fn.main.html +++ b/mcaptcha/fn.main.html @@ -4,5 +4,5 @@
-

Function mcaptcha::main

source · []
pub(crate) fn main() -> Result<()>
+

Function mcaptcha::main

source · []
pub(crate) fn main() -> Result<()>
\ No newline at end of file diff --git a/mcaptcha/index.html b/mcaptcha/index.html index 8f0d6682..1066a8ba 100644 --- a/mcaptcha/index.html +++ b/mcaptcha/index.html @@ -13,5 +13,5 @@

Constants

Functions

Type Definitions

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/fn.services.html b/mcaptcha/pages/auth/fn.services.html index 9c32540a..e71078f4 100644 --- a/mcaptcha/pages/auth/fn.services.html +++ b/mcaptcha/pages/auth/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::pages::auth::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/pages/auth/index.html b/mcaptcha/pages/auth/index.html index f46aff84..6355e262 100644 --- a/mcaptcha/pages/auth/index.html +++ b/mcaptcha/pages/auth/index.html @@ -6,5 +6,5 @@

Module auth

+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/login/constant.PAGE.html b/mcaptcha/pages/auth/login/constant.PAGE.html index a950dd11..9b60cb08 100644 --- a/mcaptcha/pages/auth/login/constant.PAGE.html +++ b/mcaptcha/pages/auth/login/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "Login";
+

Constant mcaptcha::pages::auth::login::PAGE

source · []
const PAGE: &str = "Login";
\ No newline at end of file diff --git a/mcaptcha/pages/auth/login/index.html b/mcaptcha/pages/auth/login/index.html index 62651f1a..35117458 100644 --- a/mcaptcha/pages/auth/login/index.html +++ b/mcaptcha/pages/auth/login/index.html @@ -6,5 +6,5 @@

Module login

+
PAGE 🔒
\ No newline at end of file diff --git a/mcaptcha/pages/auth/login/struct.INDEX.html b/mcaptcha/pages/auth/login/struct.INDEX.html index 3e80ce88..e817ff64 100644 --- a/mcaptcha/pages/auth/login/struct.INDEX.html +++ b/mcaptcha/pages/auth/login/struct.INDEX.html @@ -3,32 +3,32 @@

+

INDEX

struct INDEX {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+ __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -40,7 +40,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -49,8 +49,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -60,7 +60,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -69,7 +69,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -86,7 +86,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -101,8 +101,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -115,28 +115,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -147,9 +179,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -159,23 +212,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -183,7 +255,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -197,17 +269,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -216,14 +305,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -242,7 +351,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -252,14 +361,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -278,7 +387,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -292,10 +401,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -306,13 +415,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -332,11 +441,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -356,13 +465,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -385,10 +494,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -397,48 +506,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -460,12 +569,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -485,17 +594,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -557,14 +666,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -575,16 +684,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -602,21 +711,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -627,11 +736,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -639,9 +748,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -650,18 +759,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -679,18 +788,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -705,29 +814,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -735,16 +844,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -752,19 +861,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -775,18 +884,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -797,28 +906,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -826,19 +935,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -846,8 +955,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -855,7 +964,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -868,8 +977,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -877,7 +986,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -890,11 +999,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -905,16 +1014,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -922,36 +1031,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -962,17 +1071,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -980,17 +1089,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1001,17 +1110,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1027,24 +1136,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1060,8 +1191,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1077,8 +1208,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1094,11 +1225,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1108,11 +1239,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1123,13 +1254,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1150,13 +1281,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1172,10 +1303,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1183,49 +1314,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/login/struct.IndexPage.html b/mcaptcha/pages/auth/login/struct.IndexPage.html index 223196ac..45d587b7 100644 --- a/mcaptcha/pages/auth/login/struct.IndexPage.html +++ b/mcaptcha/pages/auth/login/struct.IndexPage.html @@ -4,33 +4,33 @@
struct IndexPage;

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Returns the “default value” for a type. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::auth::login::IndexPage

source · []
struct IndexPage;

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Returns the “default value” for a type. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/login/struct.login.html b/mcaptcha/pages/auth/login/struct.login.html index 5c40a397..21d00bbf 100644 --- a/mcaptcha/pages/auth/login/struct.login.html +++ b/mcaptcha/pages/auth/login/struct.login.html @@ -4,25 +4,25 @@
pub struct login;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::auth::login::login

source · []
pub struct login;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/register/constant.PAGE.html b/mcaptcha/pages/auth/register/constant.PAGE.html index 0dfdb8ce..454b2b18 100644 --- a/mcaptcha/pages/auth/register/constant.PAGE.html +++ b/mcaptcha/pages/auth/register/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "Join";
+

Constant mcaptcha::pages::auth::register::PAGE

source · []
const PAGE: &str = "Join";
\ No newline at end of file diff --git a/mcaptcha/pages/auth/register/index.html b/mcaptcha/pages/auth/register/index.html index b51382c4..404fe84e 100644 --- a/mcaptcha/pages/auth/register/index.html +++ b/mcaptcha/pages/auth/register/index.html @@ -6,5 +6,5 @@

Module register

+
PAGE 🔒
\ No newline at end of file diff --git a/mcaptcha/pages/auth/register/struct.INDEX.html b/mcaptcha/pages/auth/register/struct.INDEX.html index 3c32348d..8bdf0262 100644 --- a/mcaptcha/pages/auth/register/struct.INDEX.html +++ b/mcaptcha/pages/auth/register/struct.INDEX.html @@ -3,32 +3,32 @@

+

INDEX

struct INDEX {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+ __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -40,7 +40,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -49,8 +49,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -60,7 +60,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -69,7 +69,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -86,7 +86,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -101,8 +101,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -115,28 +115,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -147,9 +179,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -159,23 +212,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -183,7 +255,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -197,17 +269,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -216,14 +305,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -242,7 +351,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -252,14 +361,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -278,7 +387,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -292,10 +401,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -306,13 +415,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -332,11 +441,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -356,13 +465,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -385,10 +494,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -397,48 +506,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -460,12 +569,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -485,17 +594,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -557,14 +666,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -575,16 +684,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -602,21 +711,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -627,11 +736,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -639,9 +748,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -650,18 +759,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -679,18 +788,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -705,29 +814,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -735,16 +844,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -752,19 +861,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -775,18 +884,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -797,28 +906,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -826,19 +935,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -846,8 +955,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -855,7 +964,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -868,8 +977,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -877,7 +986,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -890,11 +999,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -905,16 +1014,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -922,36 +1031,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -962,17 +1071,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -980,17 +1089,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1001,17 +1110,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1027,24 +1136,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1060,8 +1191,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1077,8 +1208,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1094,11 +1225,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1108,11 +1239,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1123,13 +1254,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1150,13 +1281,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1172,10 +1303,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1183,49 +1314,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/register/struct.IndexPage.html b/mcaptcha/pages/auth/register/struct.IndexPage.html index e13c6152..deaa4d2b 100644 --- a/mcaptcha/pages/auth/register/struct.IndexPage.html +++ b/mcaptcha/pages/auth/register/struct.IndexPage.html @@ -4,33 +4,33 @@
struct IndexPage;

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Returns the “default value” for a type. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::auth::register::IndexPage

source · []
struct IndexPage;

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Returns the “default value” for a type. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/register/struct.join.html b/mcaptcha/pages/auth/register/struct.join.html index cedbd17a..be29706f 100644 --- a/mcaptcha/pages/auth/register/struct.join.html +++ b/mcaptcha/pages/auth/register/struct.join.html @@ -4,25 +4,25 @@
pub struct join;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::auth::register::join

source · []
pub struct join;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/routes/index.html b/mcaptcha/pages/auth/routes/index.html index 5b0309bc..69088434 100644 --- a/mcaptcha/pages/auth/routes/index.html +++ b/mcaptcha/pages/auth/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/routes/struct.Auth.html b/mcaptcha/pages/auth/routes/struct.Auth.html index 1232c451..135b0e7a 100644 --- a/mcaptcha/pages/auth/routes/struct.Auth.html +++ b/mcaptcha/pages/auth/routes/struct.Auth.html @@ -5,27 +5,27 @@
pub struct Auth {
-    pub login: &'static str,
-    pub join: &'static str,
-}

Fields

login: &'static strjoin: &'static str

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub login: &'static str, + pub join: &'static str, +}

Fields

login: &'static strjoin: &'static str

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/sudo/constant.PAGE.html b/mcaptcha/pages/auth/sudo/constant.PAGE.html index 2673abe5..6db9a0ad 100644 --- a/mcaptcha/pages/auth/sudo/constant.PAGE.html +++ b/mcaptcha/pages/auth/sudo/constant.PAGE.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::pages::auth::sudo::PAGE

source · []
pub const PAGE: &str = "Confirm Access";
+

Constant mcaptcha::pages::auth::sudo::PAGE

source · []
pub const PAGE: &str = "Confirm Access";
\ No newline at end of file diff --git a/mcaptcha/pages/auth/sudo/index.html b/mcaptcha/pages/auth/sudo/index.html index 8292fae5..37ab9eb9 100644 --- a/mcaptcha/pages/auth/sudo/index.html +++ b/mcaptcha/pages/auth/sudo/index.html @@ -6,5 +6,5 @@

Module sudo

+
\ No newline at end of file diff --git a/mcaptcha/pages/auth/sudo/struct.SudoPage.html b/mcaptcha/pages/auth/sudo/struct.SudoPage.html index 1cdbbcca..64bc6e47 100644 --- a/mcaptcha/pages/auth/sudo/struct.SudoPage.html +++ b/mcaptcha/pages/auth/sudo/struct.SudoPage.html @@ -4,35 +4,35 @@
pub struct SudoPage<'a, K, V> where
    K: Display + Render,
    V: Display + Render, 
{ - url: &'a str, - data: Option<Vec<(K, V)>>, -}

Fields

url: &'a strdata: Option<Vec<(K, V)>>

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::auth::sudo::SudoPage

source · []
pub struct SudoPage<'a, K, V> where
    K: Display + Render,
    V: Display + Render, 
{ + url: &'a str, + data: Option<Vec<(K, V)>>, +}

Fields

url: &'a strdata: Option<Vec<(K, V)>>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/constant.NAME.html b/mcaptcha/pages/constant.NAME.html index bea38eab..c432f2bb 100644 --- a/mcaptcha/pages/constant.NAME.html +++ b/mcaptcha/pages/constant.NAME.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::pages::NAME

source · []
pub const NAME: &str = "mCaptcha";
+

Constant mcaptcha::pages::NAME

source · []
pub const NAME: &str = "mCaptcha";
\ No newline at end of file diff --git a/mcaptcha/pages/errors/constant.ERROR_ROUTE.html b/mcaptcha/pages/errors/constant.ERROR_ROUTE.html index 463fb93e..58e99e74 100644 --- a/mcaptcha/pages/errors/constant.ERROR_ROUTE.html +++ b/mcaptcha/pages/errors/constant.ERROR_ROUTE.html @@ -4,5 +4,5 @@
const ERROR_ROUTE: &str = "/error/{id}";
+

Constant mcaptcha::pages::errors::ERROR_ROUTE

source · []
const ERROR_ROUTE: &str = "/error/{id}";
\ No newline at end of file diff --git a/mcaptcha/pages/errors/constant.PAGE.html b/mcaptcha/pages/errors/constant.PAGE.html index 15504c60..3eae7a14 100644 --- a/mcaptcha/pages/errors/constant.PAGE.html +++ b/mcaptcha/pages/errors/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "Error";
+

Constant mcaptcha::pages::errors::PAGE

source · []
const PAGE: &str = "Error";
\ No newline at end of file diff --git a/mcaptcha/pages/errors/fn.services.html b/mcaptcha/pages/errors/fn.services.html index 5be1771e..12bb3e83 100644 --- a/mcaptcha/pages/errors/fn.services.html +++ b/mcaptcha/pages/errors/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::pages::errors::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/pages/errors/index.html b/mcaptcha/pages/errors/index.html index 5a08cdd0..8cdb954e 100644 --- a/mcaptcha/pages/errors/index.html +++ b/mcaptcha/pages/errors/index.html @@ -8,5 +8,5 @@

Structs

Constants

PAGE 🔒

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/errors/routes/index.html b/mcaptcha/pages/errors/routes/index.html index 5a682de6..372b6437 100644 --- a/mcaptcha/pages/errors/routes/index.html +++ b/mcaptcha/pages/errors/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/pages/errors/routes/struct.Errors.html b/mcaptcha/pages/errors/routes/struct.Errors.html index 9bc595d7..644445b7 100644 --- a/mcaptcha/pages/errors/routes/struct.Errors.html +++ b/mcaptcha/pages/errors/routes/struct.Errors.html @@ -5,27 +5,27 @@
pub struct Errors {
-    pub internal_server_error: &'static str,
-    pub unknown_error: &'static str,
-}

Fields

internal_server_error: &'static strunknown_error: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub internal_server_error: &'static str, + pub unknown_error: &'static str, +}

Fields

internal_server_error: &'static strunknown_error: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/errors/struct.ErrorPage.html b/mcaptcha/pages/errors/struct.ErrorPage.html index 203f32d6..f1578f4e 100644 --- a/mcaptcha/pages/errors/struct.ErrorPage.html +++ b/mcaptcha/pages/errors/struct.ErrorPage.html @@ -5,34 +5,34 @@
struct ErrorPage<'a> {
-    title: &'a str,
-    message: &'a str,
-}

Fields

title: &'a strmessage: &'a str

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ title: &'a str, + message: &'a str, +}

Fields

title: &'a strmessage: &'a str

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/errors/struct.INTERNAL_SERVER_ERROR_BODY.html b/mcaptcha/pages/errors/struct.INTERNAL_SERVER_ERROR_BODY.html index 58c3af6d..ff3f651e 100644 --- a/mcaptcha/pages/errors/struct.INTERNAL_SERVER_ERROR_BODY.html +++ b/mcaptcha/pages/errors/struct.INTERNAL_SERVER_ERROR_BODY.html @@ -3,32 +3,32 @@

+

INTERNAL_SERVER_ERROR_BODY

struct INTERNAL_SERVER_ERROR_BODY {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+ __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -40,7 +40,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -49,8 +49,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -60,7 +60,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -69,7 +69,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -86,7 +86,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -101,8 +101,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -115,28 +115,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -147,9 +179,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -159,23 +212,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -183,7 +255,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -197,17 +269,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -216,14 +305,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -242,7 +351,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -252,14 +361,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -278,7 +387,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -292,10 +401,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -306,13 +415,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -332,11 +441,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -356,13 +465,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -385,10 +494,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -397,48 +506,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -460,12 +569,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -485,17 +594,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -557,14 +666,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -575,16 +684,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -602,21 +711,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -627,11 +736,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -639,9 +748,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -650,18 +759,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -679,18 +788,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -705,29 +814,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -735,16 +844,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -752,19 +861,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -775,18 +884,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -797,28 +906,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -826,19 +935,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -846,8 +955,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -855,7 +964,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -868,8 +977,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -877,7 +986,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -890,11 +999,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -905,16 +1014,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -922,36 +1031,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -962,17 +1071,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -980,17 +1089,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1001,17 +1110,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1027,24 +1136,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1060,8 +1191,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1077,8 +1208,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1094,11 +1225,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1108,11 +1239,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1123,13 +1254,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1150,13 +1281,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1172,10 +1303,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1183,49 +1314,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/errors/struct.UNKNOWN_ERROR_BODY.html b/mcaptcha/pages/errors/struct.UNKNOWN_ERROR_BODY.html index 5603d4a8..ad57e700 100644 --- a/mcaptcha/pages/errors/struct.UNKNOWN_ERROR_BODY.html +++ b/mcaptcha/pages/errors/struct.UNKNOWN_ERROR_BODY.html @@ -3,32 +3,32 @@

+

UNKNOWN_ERROR_BODY

struct UNKNOWN_ERROR_BODY {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+ __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -40,7 +40,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -49,8 +49,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -60,7 +60,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -69,7 +69,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -86,7 +86,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -101,8 +101,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -115,28 +115,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -147,9 +179,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -159,23 +212,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -183,7 +255,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -197,17 +269,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -216,14 +305,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -242,7 +351,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -252,14 +361,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -278,7 +387,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -292,10 +401,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -306,13 +415,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -332,11 +441,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -356,13 +465,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -385,10 +494,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -397,48 +506,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -460,12 +569,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -485,17 +594,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -557,14 +666,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -575,16 +684,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -602,21 +711,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -627,11 +736,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -639,9 +748,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -650,18 +759,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -679,18 +788,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -705,29 +814,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -735,16 +844,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -752,19 +861,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -775,18 +884,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -797,28 +906,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -826,19 +935,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -846,8 +955,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -855,7 +964,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -868,8 +977,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -877,7 +986,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -890,11 +999,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -905,16 +1014,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -922,36 +1031,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -962,17 +1071,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -980,17 +1089,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1001,17 +1110,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1027,24 +1136,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1060,8 +1191,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1077,8 +1208,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1094,11 +1225,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1108,11 +1239,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1123,13 +1254,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1150,13 +1281,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1172,10 +1303,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1183,49 +1314,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/errors/struct.error.html b/mcaptcha/pages/errors/struct.error.html index cb3fc5a5..c0ad2f17 100644 --- a/mcaptcha/pages/errors/struct.error.html +++ b/mcaptcha/pages/errors/struct.error.html @@ -4,25 +4,25 @@
pub struct error;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::errors::error

source · []
pub struct error;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/fn.get_middleware.html b/mcaptcha/pages/fn.get_middleware.html index d40a0fbc..05c65588 100644 --- a/mcaptcha/pages/fn.get_middleware.html +++ b/mcaptcha/pages/fn.get_middleware.html @@ -4,5 +4,5 @@
pub fn get_middleware() -> Authentication<Routes>
+

Function mcaptcha::pages::get_middleware

source · []
pub fn get_middleware() -> Authentication<Routes>
\ No newline at end of file diff --git a/mcaptcha/pages/fn.services.html b/mcaptcha/pages/fn.services.html index a56ff717..e3fbf580 100644 --- a/mcaptcha/pages/fn.services.html +++ b/mcaptcha/pages/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::pages::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/pages/index.html b/mcaptcha/pages/index.html index b7d3a471..b83794e1 100644 --- a/mcaptcha/pages/index.html +++ b/mcaptcha/pages/index.html @@ -7,5 +7,5 @@

Module mcaptcha::pages

source · []

Modules

auth 🔒
panel 🔒
sitemap 🔒

Constants

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/constant.PAGE.html b/mcaptcha/pages/panel/constant.PAGE.html index 0420a85e..57cddb07 100644 --- a/mcaptcha/pages/panel/constant.PAGE.html +++ b/mcaptcha/pages/panel/constant.PAGE.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::pages::panel::PAGE

source · []
const PAGE: &str = "Dashboard";
+

Constant mcaptcha::pages::panel::PAGE

source · []
const PAGE: &str = "Dashboard";
\ No newline at end of file diff --git a/mcaptcha/pages/panel/fn.services.html b/mcaptcha/pages/panel/fn.services.html index 8b35a50e..531a4ae8 100644 --- a/mcaptcha/pages/panel/fn.services.html +++ b/mcaptcha/pages/panel/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::pages::panel::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/pages/panel/index.html b/mcaptcha/pages/panel/index.html index fd05ac1f..244287c1 100644 --- a/mcaptcha/pages/panel/index.html +++ b/mcaptcha/pages/panel/index.html @@ -8,5 +8,5 @@

Structs

Constants

PAGE 🔒

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/notifications/constant.PAGE.html b/mcaptcha/pages/panel/notifications/constant.PAGE.html index c1ea38a1..c16e0e34 100644 --- a/mcaptcha/pages/panel/notifications/constant.PAGE.html +++ b/mcaptcha/pages/panel/notifications/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "Notifications";
+

Constant mcaptcha::pages::panel::notifications::PAGE

source · []
const PAGE: &str = "Notifications";
\ No newline at end of file diff --git a/mcaptcha/pages/panel/notifications/index.html b/mcaptcha/pages/panel/notifications/index.html index 0262c84b..e70234b2 100644 --- a/mcaptcha/pages/panel/notifications/index.html +++ b/mcaptcha/pages/panel/notifications/index.html @@ -6,5 +6,5 @@

Module notifications

+
PAGE 🔒
\ No newline at end of file diff --git a/mcaptcha/pages/panel/notifications/struct.IndexPage.html b/mcaptcha/pages/panel/notifications/struct.IndexPage.html index b3055f81..2405e642 100644 --- a/mcaptcha/pages/panel/notifications/struct.IndexPage.html +++ b/mcaptcha/pages/panel/notifications/struct.IndexPage.html @@ -5,29 +5,29 @@
pub struct IndexPage {
-    n: Vec<Notification>,
-}

Fields

n: Vec<Notification>

notifications

-

Implementations

Trait Implementations

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ n: Vec<Notification>, +}

Fields

n: Vec<Notification>

notifications

+

Implementations

Trait Implementations

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/notifications/struct.Notification.html b/mcaptcha/pages/panel/notifications/struct.Notification.html index c122dcbb..614fdbba 100644 --- a/mcaptcha/pages/panel/notifications/struct.Notification.html +++ b/mcaptcha/pages/panel/notifications/struct.Notification.html @@ -5,31 +5,31 @@
pub struct Notification {
-    pub name: String,
-    pub heading: String,
-    pub message: String,
+    pub name: String,
+    pub heading: String,
+    pub message: String,
     pub received: OffsetDateTime,
-    pub id: i32,
-}

Fields

name: Stringheading: Stringmessage: Stringreceived: OffsetDateTimeid: i32

Implementations

Trait Implementations

Converts to this type from the input type.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub id: i32, +}

Fields

name: Stringheading: Stringmessage: Stringreceived: OffsetDateTimeid: i32

Implementations

Trait Implementations

Converts to this type from the input type.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/notifications/struct.notifications.html b/mcaptcha/pages/panel/notifications/struct.notifications.html index 11cb2dbe..f5cf3956 100644 --- a/mcaptcha/pages/panel/notifications/struct.notifications.html +++ b/mcaptcha/pages/panel/notifications/struct.notifications.html @@ -4,25 +4,25 @@
pub struct notifications;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::panel::notifications::notifications

source · []
pub struct notifications;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/routes/index.html b/mcaptcha/pages/panel/routes/index.html index 055692d4..725ea510 100644 --- a/mcaptcha/pages/panel/routes/index.html +++ b/mcaptcha/pages/panel/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/routes/struct.Panel.html b/mcaptcha/pages/panel/routes/struct.Panel.html index 69d4c13f..2f06cd04 100644 --- a/mcaptcha/pages/panel/routes/struct.Panel.html +++ b/mcaptcha/pages/panel/routes/struct.Panel.html @@ -5,29 +5,29 @@
pub struct Panel {
-    pub home: &'static str,
+    pub home: &'static str,
     pub sitekey: Sitekey,
-    pub notifications: &'static str,
+    pub notifications: &'static str,
     pub settings: Settings,
-}

Fields

home: &'static strsitekey: Sitekeynotifications: &'static strsettings: Settings

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Fields

home: &'static strsitekey: Sitekeynotifications: &'static strsettings: Settings

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/constant.PAGE.html b/mcaptcha/pages/panel/settings/constant.PAGE.html index 4fa5f36e..b4b6643c 100644 --- a/mcaptcha/pages/panel/settings/constant.PAGE.html +++ b/mcaptcha/pages/panel/settings/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "Settings";
+

Constant mcaptcha::pages::panel::settings::PAGE

source · []
const PAGE: &str = "Settings";
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/fn.services.html b/mcaptcha/pages/panel/settings/fn.services.html index 9f289ce1..3cc9d353 100644 --- a/mcaptcha/pages/panel/settings/fn.services.html +++ b/mcaptcha/pages/panel/settings/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::pages::panel::settings::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/index.html b/mcaptcha/pages/panel/settings/index.html index c5954324..8c37e725 100644 --- a/mcaptcha/pages/panel/settings/index.html +++ b/mcaptcha/pages/panel/settings/index.html @@ -8,5 +8,5 @@

Structs

Constants

PAGE 🔒

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/routes/index.html b/mcaptcha/pages/panel/settings/routes/index.html index 86f6e012..6897d932 100644 --- a/mcaptcha/pages/panel/settings/routes/index.html +++ b/mcaptcha/pages/panel/settings/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/routes/struct.Settings.html b/mcaptcha/pages/panel/settings/routes/struct.Settings.html index 06be8310..b9ea7d91 100644 --- a/mcaptcha/pages/panel/settings/routes/struct.Settings.html +++ b/mcaptcha/pages/panel/settings/routes/struct.Settings.html @@ -5,28 +5,28 @@
pub struct Settings {
-    pub home: &'static str,
-    pub delete_account: &'static str,
-    pub update_secret: &'static str,
-}

Fields

home: &'static strdelete_account: &'static strupdate_secret: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub home: &'static str, + pub delete_account: &'static str, + pub update_secret: &'static str, +}

Fields

home: &'static strdelete_account: &'static strupdate_secret: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/struct.IndexPage.html b/mcaptcha/pages/panel/settings/struct.IndexPage.html index 8d602e98..0b2e39b2 100644 --- a/mcaptcha/pages/panel/settings/struct.IndexPage.html +++ b/mcaptcha/pages/panel/settings/struct.IndexPage.html @@ -5,35 +5,35 @@
pub struct IndexPage<'a> {
-    email: Option<String>,
-    secret: String,
-    username: &'a str,
-}

Fields

email: Option<String>secret: Stringusername: &'a str

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ email: Option<String>, + secret: String, + username: &'a str, +}

Fields

email: Option<String>secret: Stringusername: &'a str

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/struct.delete_account.html b/mcaptcha/pages/panel/settings/struct.delete_account.html index 583b37f2..f94006b2 100644 --- a/mcaptcha/pages/panel/settings/struct.delete_account.html +++ b/mcaptcha/pages/panel/settings/struct.delete_account.html @@ -4,25 +4,25 @@
pub struct delete_account;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::panel::settings::delete_account

source · []
pub struct delete_account;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/struct.settings.html b/mcaptcha/pages/panel/settings/struct.settings.html index 75ed88da..c0d77c39 100644 --- a/mcaptcha/pages/panel/settings/struct.settings.html +++ b/mcaptcha/pages/panel/settings/struct.settings.html @@ -4,25 +4,25 @@
pub struct settings;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::panel::settings::settings

source · []
pub struct settings;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/settings/struct.update_secret.html b/mcaptcha/pages/panel/settings/struct.update_secret.html index 2bdb189e..6efa4312 100644 --- a/mcaptcha/pages/panel/settings/struct.update_secret.html +++ b/mcaptcha/pages/panel/settings/struct.update_secret.html @@ -4,25 +4,25 @@
pub struct update_secret;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::panel::settings::update_secret

source · []
pub struct update_secret;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/add/constant.PAGE.html b/mcaptcha/pages/panel/sitekey/add/constant.PAGE.html index 4ba66d2b..4f57d5e7 100644 --- a/mcaptcha/pages/panel/sitekey/add/constant.PAGE.html +++ b/mcaptcha/pages/panel/sitekey/add/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "Add Sitekey";
+

Constant mcaptcha::pages::panel::sitekey::add::PAGE

source · []
const PAGE: &str = "Add Sitekey";
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/add/index.html b/mcaptcha/pages/panel/sitekey/add/index.html index 82220a47..ffae3d0c 100644 --- a/mcaptcha/pages/panel/sitekey/add/index.html +++ b/mcaptcha/pages/panel/sitekey/add/index.html @@ -6,5 +6,5 @@

Module add

+
PAGE 🔒
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/add/struct.ADVANCE_INDEX.html b/mcaptcha/pages/panel/sitekey/add/struct.ADVANCE_INDEX.html index 85dd60f1..77e2ee31 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.ADVANCE_INDEX.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.ADVANCE_INDEX.html @@ -3,32 +3,32 @@

+

ADVANCE_INDEX

struct ADVANCE_INDEX {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+ __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -40,7 +40,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -49,8 +49,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -60,7 +60,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -69,7 +69,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -86,7 +86,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -101,8 +101,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -115,28 +115,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -147,9 +179,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -159,23 +212,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -183,7 +255,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -197,17 +269,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -216,14 +305,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -242,7 +351,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -252,14 +361,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -278,7 +387,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -292,10 +401,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -306,13 +415,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -332,11 +441,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -356,13 +465,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -385,10 +494,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -397,48 +506,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -460,12 +569,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -485,17 +594,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -557,14 +666,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -575,16 +684,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -602,21 +711,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -627,11 +736,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -639,9 +748,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -650,18 +759,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -679,18 +788,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -705,29 +814,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -735,16 +844,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -752,19 +861,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -775,18 +884,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -797,28 +906,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -826,19 +935,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -846,8 +955,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -855,7 +964,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -868,8 +977,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -877,7 +986,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -890,11 +999,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -905,16 +1014,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -922,36 +1031,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -962,17 +1071,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -980,17 +1089,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1001,17 +1110,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1027,24 +1136,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1060,8 +1191,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1077,8 +1208,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1094,11 +1225,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1108,11 +1239,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1123,13 +1254,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1150,13 +1281,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1172,10 +1303,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1183,49 +1314,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/add/struct.AdvanceIndexPage.html b/mcaptcha/pages/panel/sitekey/add/struct.AdvanceIndexPage.html index eeba0a3e..462a89a6 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.AdvanceIndexPage.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.AdvanceIndexPage.html @@ -5,37 +5,37 @@
pub struct AdvanceIndexPage<'a> {
-    pub levels: usize,
-    pub form_title: &'a str,
-    pub form_description: &'a str,
-    pub form_duration: usize,
-}

Fields

levels: usizeform_title: &'a strform_description: &'a strform_duration: usize

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Returns the “default value” for a type. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub levels: usize, + pub form_title: &'a str, + pub form_description: &'a str, + pub form_duration: usize, +}

Fields

levels: usizeform_title: &'a strform_description: &'a strform_duration: usize

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Returns the “default value” for a type. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/add/struct.EASY_INDEX.html b/mcaptcha/pages/panel/sitekey/add/struct.EASY_INDEX.html index 627f3985..bf6ac04f 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.EASY_INDEX.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.EASY_INDEX.html @@ -3,32 +3,32 @@

+

EASY_INDEX

struct EASY_INDEX {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+ __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -40,7 +40,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -49,8 +49,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -60,7 +60,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -69,7 +69,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -86,7 +86,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -101,8 +101,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -115,28 +115,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -147,9 +179,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -159,23 +212,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -183,7 +255,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -197,17 +269,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -216,14 +305,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -242,7 +351,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -252,14 +361,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -278,7 +387,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -292,10 +401,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -306,13 +415,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -332,11 +441,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -356,13 +465,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -385,10 +494,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -397,48 +506,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -460,12 +569,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -485,17 +594,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -557,14 +666,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -575,16 +684,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -602,21 +711,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -627,11 +736,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -639,9 +748,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -650,18 +759,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -679,18 +788,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -705,29 +814,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -735,16 +844,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -752,19 +861,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -775,18 +884,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -797,28 +906,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -826,19 +935,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -846,8 +955,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -855,7 +964,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -868,8 +977,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -877,7 +986,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -890,11 +999,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -905,16 +1014,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -922,36 +1031,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -962,17 +1071,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -980,17 +1089,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1001,17 +1110,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1027,24 +1136,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1060,8 +1191,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1077,8 +1208,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1094,11 +1225,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1108,11 +1239,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1123,13 +1254,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1150,13 +1281,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1172,10 +1303,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1183,49 +1314,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/add/struct.EasyIndexPage.html b/mcaptcha/pages/panel/sitekey/add/struct.EasyIndexPage.html index 6cf9915b..cc068903 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.EasyIndexPage.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.EasyIndexPage.html @@ -5,38 +5,38 @@
pub struct EasyIndexPage<'a> {
-    pub form_description: &'a str,
-    pub form_title: &'a str,
-    pub peak_sustainable_traffic: Option<usize>,
-    pub avg_traffic: Option<usize>,
-    pub broke_my_site_traffic: Option<usize>,
-}

Fields

form_description: &'a strform_title: &'a strpeak_sustainable_traffic: Option<usize>avg_traffic: Option<usize>broke_my_site_traffic: Option<usize>

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Returns the “default value” for a type. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub form_description: &'a str, + pub form_title: &'a str, + pub peak_sustainable_traffic: Option<usize>, + pub avg_traffic: Option<usize>, + pub broke_my_site_traffic: Option<usize>, +}

Fields

form_description: &'a strform_title: &'a strpeak_sustainable_traffic: Option<usize>avg_traffic: Option<usize>broke_my_site_traffic: Option<usize>

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Returns the “default value” for a type. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/add/struct.advance.html b/mcaptcha/pages/panel/sitekey/add/struct.advance.html index bfa45be1..208f5e40 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.advance.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.advance.html @@ -4,25 +4,25 @@
pub struct advance;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::panel::sitekey::add::advance

source · []
pub struct advance;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/add/struct.easy.html b/mcaptcha/pages/panel/sitekey/add/struct.easy.html index 52857986..6f129d76 100644 --- a/mcaptcha/pages/panel/sitekey/add/struct.easy.html +++ b/mcaptcha/pages/panel/sitekey/add/struct.easy.html @@ -4,25 +4,25 @@
pub struct easy;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::panel::sitekey::add::easy

source · []
pub struct easy;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/delete/index.html b/mcaptcha/pages/panel/sitekey/delete/index.html index 6bb74bd5..eb1dca9d 100644 --- a/mcaptcha/pages/panel/sitekey/delete/index.html +++ b/mcaptcha/pages/panel/sitekey/delete/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/delete/struct.delete_sitekey.html b/mcaptcha/pages/panel/sitekey/delete/struct.delete_sitekey.html index e446dc31..74201de7 100644 --- a/mcaptcha/pages/panel/sitekey/delete/struct.delete_sitekey.html +++ b/mcaptcha/pages/panel/sitekey/delete/struct.delete_sitekey.html @@ -4,25 +4,25 @@
pub struct delete_sitekey;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::panel::sitekey::delete::delete_sitekey

source · []
pub struct delete_sitekey;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/edit/constant.PAGE.html b/mcaptcha/pages/panel/sitekey/edit/constant.PAGE.html index bef9baf2..0491c958 100644 --- a/mcaptcha/pages/panel/sitekey/edit/constant.PAGE.html +++ b/mcaptcha/pages/panel/sitekey/edit/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "Edit Sitekey";
+

Constant mcaptcha::pages::panel::sitekey::edit::PAGE

source · []
const PAGE: &str = "Edit Sitekey";
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/edit/index.html b/mcaptcha/pages/panel/sitekey/edit/index.html index 7e1d2d5f..b87eb420 100644 --- a/mcaptcha/pages/panel/sitekey/edit/index.html +++ b/mcaptcha/pages/panel/sitekey/edit/index.html @@ -8,5 +8,5 @@

route handler that renders individual views for sitekeys

route handler that renders individual views for sitekeys

Constants

-
PAGE 🔒
+
PAGE 🔒
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/edit/struct.AdvanceEditPage.html b/mcaptcha/pages/panel/sitekey/edit/struct.AdvanceEditPage.html index dac674b9..57f81088 100644 --- a/mcaptcha/pages/panel/sitekey/edit/struct.AdvanceEditPage.html +++ b/mcaptcha/pages/panel/sitekey/edit/struct.AdvanceEditPage.html @@ -5,36 +5,36 @@
struct AdvanceEditPage {
-    duration: u32,
-    name: String,
-    key: String,
-    levels: Vec<Level>,
-}

Fields

duration: u32name: Stringkey: Stringlevels: Vec<Level>

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ duration: u32, + name: String, + key: String, + levels: Vec<Level>, +}

Fields

duration: u32name: Stringkey: Stringlevels: Vec<Level>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/edit/struct.EasyEditPage.html b/mcaptcha/pages/panel/sitekey/edit/struct.EasyEditPage.html index c1679469..c235539a 100644 --- a/mcaptcha/pages/panel/sitekey/edit/struct.EasyEditPage.html +++ b/mcaptcha/pages/panel/sitekey/edit/struct.EasyEditPage.html @@ -5,35 +5,35 @@
pub struct EasyEditPage<'a> {
-    pub form_title: &'a str,
+    pub form_title: &'a str,
     pub pattern: TrafficPatternRequest,
-    pub key: String,
-}

Fields

form_title: &'a strpattern: TrafficPatternRequestkey: String

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub key: String, +}

Fields

form_title: &'a strpattern: TrafficPatternRequestkey: String

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/edit/struct.advance.html b/mcaptcha/pages/panel/sitekey/edit/struct.advance.html index c89f443b..27858338 100644 --- a/mcaptcha/pages/panel/sitekey/edit/struct.advance.html +++ b/mcaptcha/pages/panel/sitekey/edit/struct.advance.html @@ -5,25 +5,25 @@
pub struct advance;
Expand description

route handler that renders individual views for sitekeys

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/edit/struct.easy.html b/mcaptcha/pages/panel/sitekey/edit/struct.easy.html index 43eda0ef..1747f600 100644 --- a/mcaptcha/pages/panel/sitekey/edit/struct.easy.html +++ b/mcaptcha/pages/panel/sitekey/edit/struct.easy.html @@ -5,25 +5,25 @@
pub struct easy;
Expand description

route handler that renders individual views for sitekeys

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/fn.services.html b/mcaptcha/pages/panel/sitekey/fn.services.html index afd97a6c..ab29c3ce 100644 --- a/mcaptcha/pages/panel/sitekey/fn.services.html +++ b/mcaptcha/pages/panel/sitekey/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::pages::panel::sitekey::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/index.html b/mcaptcha/pages/panel/sitekey/index.html index 14b1397e..de660545 100644 --- a/mcaptcha/pages/panel/sitekey/index.html +++ b/mcaptcha/pages/panel/sitekey/index.html @@ -6,5 +6,5 @@

Module sitekey

+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/list/constant.PAGE.html b/mcaptcha/pages/panel/sitekey/list/constant.PAGE.html index 621f467d..c42d1b44 100644 --- a/mcaptcha/pages/panel/sitekey/list/constant.PAGE.html +++ b/mcaptcha/pages/panel/sitekey/list/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "SiteKeys";
+

Constant mcaptcha::pages::panel::sitekey::list::PAGE

source · []
const PAGE: &str = "SiteKeys";
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/list/index.html b/mcaptcha/pages/panel/sitekey/list/index.html index 304b11eb..e9fbac71 100644 --- a/mcaptcha/pages/panel/sitekey/list/index.html +++ b/mcaptcha/pages/panel/sitekey/list/index.html @@ -7,5 +7,5 @@

Module mcaptcha::pages::panel::sitekey::list

source · []

Structs

render a list of all sitekeys that a user has

Constants

-
PAGE 🔒
+
PAGE 🔒
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/list/struct.IndexPage.html b/mcaptcha/pages/panel/sitekey/list/struct.IndexPage.html index b08cb493..18033b57 100644 --- a/mcaptcha/pages/panel/sitekey/list/struct.IndexPage.html +++ b/mcaptcha/pages/panel/sitekey/list/struct.IndexPage.html @@ -5,33 +5,33 @@
pub struct IndexPage {
-    sitekeys: Vec<Captcha>,
-}

Fields

sitekeys: Vec<Captcha>

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ sitekeys: Vec<Captcha>, +}

Fields

sitekeys: Vec<Captcha>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/list/struct.list_sitekeys.html b/mcaptcha/pages/panel/sitekey/list/struct.list_sitekeys.html index f9479cde..16f7a999 100644 --- a/mcaptcha/pages/panel/sitekey/list/struct.list_sitekeys.html +++ b/mcaptcha/pages/panel/sitekey/list/struct.list_sitekeys.html @@ -5,25 +5,25 @@
pub struct list_sitekeys;
Expand description

render a list of all sitekeys that a user has

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/routes/index.html b/mcaptcha/pages/panel/sitekey/routes/index.html index 09d93d87..e5af0eab 100644 --- a/mcaptcha/pages/panel/sitekey/routes/index.html +++ b/mcaptcha/pages/panel/sitekey/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/routes/struct.Sitekey.html b/mcaptcha/pages/panel/sitekey/routes/struct.Sitekey.html index 51719b6d..1573b7af 100644 --- a/mcaptcha/pages/panel/sitekey/routes/struct.Sitekey.html +++ b/mcaptcha/pages/panel/sitekey/routes/struct.Sitekey.html @@ -5,32 +5,32 @@
pub struct Sitekey {
-    pub list: &'static str,
-    pub add_easy: &'static str,
-    pub add_advance: &'static str,
-    pub view: &'static str,
-    pub edit_easy: &'static str,
-    pub edit_advance: &'static str,
-    pub delete: &'static str,
-}

Fields

list: &'static stradd_easy: &'static stradd_advance: &'static strview: &'static stredit_easy: &'static stredit_advance: &'static strdelete: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub list: &'static str, + pub add_easy: &'static str, + pub add_advance: &'static str, + pub view: &'static str, + pub edit_easy: &'static str, + pub edit_advance: &'static str, + pub delete: &'static str, +}

Fields

list: &'static stradd_easy: &'static stradd_advance: &'static strview: &'static stredit_easy: &'static stredit_advance: &'static strdelete: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/view/constant.PAGE.html b/mcaptcha/pages/panel/sitekey/view/constant.PAGE.html index c13614cd..87f4e527 100644 --- a/mcaptcha/pages/panel/sitekey/view/constant.PAGE.html +++ b/mcaptcha/pages/panel/sitekey/view/constant.PAGE.html @@ -4,5 +4,5 @@
const PAGE: &str = "SiteKeys";
+

Constant mcaptcha::pages::panel::sitekey::view::PAGE

source · []
const PAGE: &str = "SiteKeys";
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/view/index.html b/mcaptcha/pages/panel/sitekey/view/index.html index 67282c6a..bc7fe6ab 100644 --- a/mcaptcha/pages/panel/sitekey/view/index.html +++ b/mcaptcha/pages/panel/sitekey/view/index.html @@ -7,5 +7,5 @@

Module mcaptcha::pages::panel::sitekey::view

source · []

Structs

IndexPage 🔒

route handler that renders individual views for sitekeys

Constants

-
PAGE 🔒
+
PAGE 🔒
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/view/struct.IndexPage.html b/mcaptcha/pages/panel/sitekey/view/struct.IndexPage.html index 83b898c1..873b6ce1 100644 --- a/mcaptcha/pages/panel/sitekey/view/struct.IndexPage.html +++ b/mcaptcha/pages/panel/sitekey/view/struct.IndexPage.html @@ -5,37 +5,37 @@
struct IndexPage {
-    duration: u32,
-    name: String,
-    key: String,
-    levels: Vec<Level>,
+    duration: u32,
+    name: String,
+    key: String,
+    levels: Vec<Level>,
     stats: CaptchaStats,
-}

Fields

duration: u32name: Stringkey: Stringlevels: Vec<Level>stats: CaptchaStats

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Fields

duration: u32name: Stringkey: Stringlevels: Vec<Level>stats: CaptchaStats

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/sitekey/view/struct.view_sitekey.html b/mcaptcha/pages/panel/sitekey/view/struct.view_sitekey.html index aaca1398..8676ce13 100644 --- a/mcaptcha/pages/panel/sitekey/view/struct.view_sitekey.html +++ b/mcaptcha/pages/panel/sitekey/view/struct.view_sitekey.html @@ -5,25 +5,25 @@
pub struct view_sitekey;
Expand description

route handler that renders individual views for sitekeys

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/struct.IndexPage.html b/mcaptcha/pages/panel/struct.IndexPage.html index 755f4d25..d8d80150 100644 --- a/mcaptcha/pages/panel/struct.IndexPage.html +++ b/mcaptcha/pages/panel/struct.IndexPage.html @@ -5,33 +5,33 @@
pub struct IndexPage {
-    sitekeys: Vec<Captcha>,
-}

Fields

sitekeys: Vec<Captcha>

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ sitekeys: Vec<Captcha>, +}

Fields

sitekeys: Vec<Captcha>

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/panel/struct.panel.html b/mcaptcha/pages/panel/struct.panel.html index a3996723..406b08f2 100644 --- a/mcaptcha/pages/panel/struct.panel.html +++ b/mcaptcha/pages/panel/struct.panel.html @@ -4,25 +4,25 @@
pub struct panel;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::panel::panel

source · []
pub struct panel;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/routes/constant.ROUTES.html b/mcaptcha/pages/routes/constant.ROUTES.html index 9e2a4e5e..3e4ddad5 100644 --- a/mcaptcha/pages/routes/constant.ROUTES.html +++ b/mcaptcha/pages/routes/constant.ROUTES.html @@ -4,5 +4,5 @@
pub const ROUTES: Routes;
+

Constant mcaptcha::pages::routes::ROUTES

source · []
pub const ROUTES: Routes;
\ No newline at end of file diff --git a/mcaptcha/pages/routes/index.html b/mcaptcha/pages/routes/index.html index e1e86cf6..f9f4912c 100644 --- a/mcaptcha/pages/routes/index.html +++ b/mcaptcha/pages/routes/index.html @@ -6,5 +6,5 @@

Module routes

+
\ No newline at end of file diff --git a/mcaptcha/pages/routes/struct.Routes.html b/mcaptcha/pages/routes/struct.Routes.html index fb8ca38e..3670c48b 100644 --- a/mcaptcha/pages/routes/struct.Routes.html +++ b/mcaptcha/pages/routes/struct.Routes.html @@ -5,35 +5,35 @@
pub struct Routes {
-    pub home: &'static str,
+    pub home: &'static str,
     pub auth: Auth,
     pub panel: Panel,
     pub errors: Errors,
-    pub about: &'static str,
-    pub sitemap: &'static str,
-    pub thanks: &'static str,
-    pub donate: &'static str,
-    pub security: &'static str,
-    pub privacy: &'static str,
-}

Fields

home: &'static strauth: Authpanel: Panelerrors: Errorsabout: &'static strsitemap: &'static strthanks: &'static strdonate: &'static strsecurity: &'static strprivacy: &'static str

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub about: &'static str, + pub sitemap: &'static str, + pub thanks: &'static str, + pub donate: &'static str, + pub security: &'static str, + pub privacy: &'static str, +}

Fields

home: &'static strauth: Authpanel: Panelerrors: Errorsabout: &'static strsitemap: &'static strthanks: &'static strdonate: &'static strsecurity: &'static strprivacy: &'static str

Implementations

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/sitemap/index.html b/mcaptcha/pages/sitemap/index.html index 34014906..7364f261 100644 --- a/mcaptcha/pages/sitemap/index.html +++ b/mcaptcha/pages/sitemap/index.html @@ -5,5 +5,5 @@
+
INDEX 🔒
IndexPage 🔒
\ No newline at end of file diff --git a/mcaptcha/pages/sitemap/struct.INDEX.html b/mcaptcha/pages/sitemap/struct.INDEX.html index bab287ea..88acdadc 100644 --- a/mcaptcha/pages/sitemap/struct.INDEX.html +++ b/mcaptcha/pages/sitemap/struct.INDEX.html @@ -3,32 +3,32 @@

+

INDEX

struct INDEX {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+ __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -40,7 +40,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -49,8 +49,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -60,7 +60,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -69,7 +69,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -86,7 +86,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -101,8 +101,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -115,28 +115,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -147,9 +179,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -159,23 +212,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -183,7 +255,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -197,17 +269,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -216,14 +305,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -242,7 +351,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -252,14 +361,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -278,7 +387,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -292,10 +401,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -306,13 +415,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -332,11 +441,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -356,13 +465,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -385,10 +494,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -397,48 +506,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -460,12 +569,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -485,17 +594,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -557,14 +666,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -575,16 +684,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -602,21 +711,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -627,11 +736,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -639,9 +748,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -650,18 +759,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -679,18 +788,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -705,29 +814,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -735,16 +844,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -752,19 +861,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -775,18 +884,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -797,28 +906,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -826,19 +935,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -846,8 +955,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -855,7 +964,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -868,8 +977,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -877,7 +986,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -890,11 +999,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -905,16 +1014,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -922,36 +1031,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -962,17 +1071,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -980,17 +1089,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1001,17 +1110,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1027,24 +1136,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1060,8 +1191,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1077,8 +1208,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1094,11 +1225,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1108,11 +1239,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1123,13 +1254,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1150,13 +1281,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1172,10 +1303,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1183,49 +1314,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/sitemap/struct.IndexPage.html b/mcaptcha/pages/sitemap/struct.IndexPage.html index 8eabcf20..37a73887 100644 --- a/mcaptcha/pages/sitemap/struct.IndexPage.html +++ b/mcaptcha/pages/sitemap/struct.IndexPage.html @@ -5,35 +5,35 @@
struct IndexPage {
-    urls: [&'static str; 7],
-    domain: &'static str,
-}

Fields

urls: [&'static str; 7]domain: &'static str

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Returns the “default value” for a type. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ urls: [&'static str; 7], + domain: &'static str, +}

Fields

urls: [&'static str; 7]domain: &'static str

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Returns the “default value” for a type. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/pages/sitemap/struct.sitemap.html b/mcaptcha/pages/sitemap/struct.sitemap.html index cd9b4016..ecb3a860 100644 --- a/mcaptcha/pages/sitemap/struct.sitemap.html +++ b/mcaptcha/pages/sitemap/struct.sitemap.html @@ -4,25 +4,25 @@
pub struct sitemap;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::pages::sitemap::sitemap

source · []
pub struct sitemap;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/routes/fn.services.html b/mcaptcha/routes/fn.services.html index 19bac0c6..b4811cf3 100644 --- a/mcaptcha/routes/fn.services.html +++ b/mcaptcha/routes/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::routes::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/routes/index.html b/mcaptcha/routes/index.html index f2966f27..ae7d21a9 100644 --- a/mcaptcha/routes/index.html +++ b/mcaptcha/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/settings/fn.check_url.html b/mcaptcha/settings/fn.check_url.html index 2c1adffc..ed7b1835 100644 --- a/mcaptcha/settings/fn.check_url.html +++ b/mcaptcha/settings/fn.check_url.html @@ -4,5 +4,5 @@
fn check_url(s: &Config)
+

Function mcaptcha::settings::check_url

source · []
fn check_url(s: &Config)
\ No newline at end of file diff --git a/mcaptcha/settings/fn.set_database_url.html b/mcaptcha/settings/fn.set_database_url.html index 2bdd8c18..f796596e 100644 --- a/mcaptcha/settings/fn.set_database_url.html +++ b/mcaptcha/settings/fn.set_database_url.html @@ -4,5 +4,5 @@
fn set_database_url(s: &mut Config)
+

Function mcaptcha::settings::set_database_url

source · []
fn set_database_url(s: &mut Config)
\ No newline at end of file diff --git a/mcaptcha/settings/fn.set_from_database_url.html b/mcaptcha/settings/fn.set_from_database_url.html index 88e144f2..e35cac73 100644 --- a/mcaptcha/settings/fn.set_from_database_url.html +++ b/mcaptcha/settings/fn.set_from_database_url.html @@ -4,5 +4,5 @@
fn set_from_database_url(s: &mut Config, database_conf: &DatabaseBuilder)
+

Function mcaptcha::settings::set_from_database_url

source · []
fn set_from_database_url(s: &mut Config, database_conf: &DatabaseBuilder)
\ No newline at end of file diff --git a/mcaptcha/settings/index.html b/mcaptcha/settings/index.html index abdaddbe..ba65f4c7 100644 --- a/mcaptcha/settings/index.html +++ b/mcaptcha/settings/index.html @@ -6,5 +6,5 @@

Module settings

+
\ No newline at end of file diff --git a/mcaptcha/settings/struct.Captcha.html b/mcaptcha/settings/struct.Captcha.html index 23709fcb..a993e82d 100644 --- a/mcaptcha/settings/struct.Captcha.html +++ b/mcaptcha/settings/struct.Captcha.html @@ -5,36 +5,36 @@
pub struct Captcha {
-    pub salt: String,
-    pub gc: u64,
-    pub enable_stats: bool,
+    pub salt: String,
+    pub gc: u64,
+    pub enable_stats: bool,
     pub default_difficulty_strategy: DefaultDifficultyStrategy,
-}

Fields

salt: Stringgc: u64enable_stats: booldefault_difficulty_strategy: DefaultDifficultyStrategy

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Fields

salt: Stringgc: u64enable_stats: booldefault_difficulty_strategy: DefaultDifficultyStrategy

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/settings/struct.Database.html b/mcaptcha/settings/struct.Database.html index 4e1cf921..61f28657 100644 --- a/mcaptcha/settings/struct.Database.html +++ b/mcaptcha/settings/struct.Database.html @@ -5,34 +5,34 @@
pub struct Database {
-    pub url: String,
-    pub pool: u32,
-}

Fields

url: Stringpool: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub url: String, + pub pool: u32, +}

Fields

url: Stringpool: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/settings/struct.DatabaseBuilder.html b/mcaptcha/settings/struct.DatabaseBuilder.html index b7b7fa7a..56ccf39d 100644 --- a/mcaptcha/settings/struct.DatabaseBuilder.html +++ b/mcaptcha/settings/struct.DatabaseBuilder.html @@ -5,37 +5,37 @@
struct DatabaseBuilder {
-    pub port: u32,
-    pub hostname: String,
-    pub username: String,
-    pub password: String,
-    pub name: String,
-}

Fields

port: u32hostname: Stringusername: Stringpassword: Stringname: String

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub port: u32, + pub hostname: String, + pub username: String, + pub password: String, + pub name: String, +}

Fields

port: u32hostname: Stringusername: Stringpassword: Stringname: String

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/settings/struct.DefaultDifficultyStrategy.html b/mcaptcha/settings/struct.DefaultDifficultyStrategy.html index ab4eabde..e5e7c43e 100644 --- a/mcaptcha/settings/struct.DefaultDifficultyStrategy.html +++ b/mcaptcha/settings/struct.DefaultDifficultyStrategy.html @@ -5,36 +5,36 @@
pub struct DefaultDifficultyStrategy {
-    pub avg_traffic_difficulty: u32,
-    pub broke_my_site_traffic_difficulty: u32,
-    pub peak_sustainable_traffic_difficulty: u32,
-    pub duration: u32,
-}

Fields

avg_traffic_difficulty: u32broke_my_site_traffic_difficulty: u32peak_sustainable_traffic_difficulty: u32duration: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub avg_traffic_difficulty: u32, + pub broke_my_site_traffic_difficulty: u32, + pub peak_sustainable_traffic_difficulty: u32, + pub duration: u32, +}

Fields

avg_traffic_difficulty: u32broke_my_site_traffic_difficulty: u32peak_sustainable_traffic_difficulty: u32duration: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/settings/struct.Redis.html b/mcaptcha/settings/struct.Redis.html index a99665c1..a754b790 100644 --- a/mcaptcha/settings/struct.Redis.html +++ b/mcaptcha/settings/struct.Redis.html @@ -5,34 +5,34 @@
pub struct Redis {
-    pub url: String,
-    pub pool: u32,
-}

Fields

url: Stringpool: u32

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub url: String, + pub pool: u32, +}

Fields

url: Stringpool: u32

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/settings/struct.Server.html b/mcaptcha/settings/struct.Server.html index b7626e22..4187fc39 100644 --- a/mcaptcha/settings/struct.Server.html +++ b/mcaptcha/settings/struct.Server.html @@ -5,38 +5,38 @@
pub struct Server {
-    pub port: u32,
-    pub domain: String,
-    pub cookie_secret: String,
-    pub ip: String,
-    pub url_prefix: Option<String>,
-    pub proxy_has_tls: bool,
-}

Fields

port: u32domain: Stringcookie_secret: Stringip: Stringurl_prefix: Option<String>proxy_has_tls: bool

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub port: u32, + pub domain: String, + pub cookie_secret: String, + pub ip: String, + pub url_prefix: Option<String>, + pub proxy_has_tls: bool, +}

Fields

port: u32domain: Stringcookie_secret: Stringip: Stringurl_prefix: Option<String>proxy_has_tls: bool

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/settings/struct.Settings.html b/mcaptcha/settings/struct.Settings.html index c398880c..9aa99f2e 100644 --- a/mcaptcha/settings/struct.Settings.html +++ b/mcaptcha/settings/struct.Settings.html @@ -5,42 +5,42 @@
pub struct Settings {
-    pub debug: bool,
-    pub commercial: bool,
+    pub debug: bool,
+    pub commercial: bool,
     pub database: Database,
-    pub redis: Option<Redis>,
+    pub redis: Option<Redis>,
     pub server: Server,
     pub captcha: Captcha,
-    pub source_code: String,
-    pub smtp: Option<Smtp>,
-    pub allow_registration: bool,
-    pub allow_demo: bool,
-}

Fields

debug: boolcommercial: booldatabase: Databaseredis: Option<Redis>server: Servercaptcha: Captchasource_code: Stringsmtp: Option<Smtp>allow_registration: boolallow_demo: bool

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub source_code: String, + pub smtp: Option<Smtp>, + pub allow_registration: bool, + pub allow_demo: bool, +}

Fields

debug: boolcommercial: booldatabase: Databaseredis: Option<Redis>server: Servercaptcha: Captchasource_code: Stringsmtp: Option<Smtp>allow_registration: boolallow_demo: bool

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/settings/struct.Smtp.html b/mcaptcha/settings/struct.Smtp.html index 8feb9d13..b61ce23c 100644 --- a/mcaptcha/settings/struct.Smtp.html +++ b/mcaptcha/settings/struct.Smtp.html @@ -5,38 +5,38 @@
pub struct Smtp {
-    pub from: String,
-    pub reply: String,
-    pub url: String,
-    pub username: String,
-    pub password: String,
-    pub port: u16,
-}

Fields

from: Stringreply: Stringurl: Stringusername: Stringpassword: Stringport: u16

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub from: String, + pub reply: String, + pub url: String, + pub username: String, + pub password: String, + pub port: u16, +}

Fields

from: Stringreply: Stringurl: Stringusername: Stringpassword: Stringport: u16

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/filemap/index.html b/mcaptcha/static_assets/filemap/index.html index 8b2c0004..c6f8ff6d 100644 --- a/mcaptcha/static_assets/filemap/index.html +++ b/mcaptcha/static_assets/filemap/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/filemap/struct.FileMap.html b/mcaptcha/static_assets/filemap/struct.FileMap.html index c0e5d58c..ac90a880 100644 --- a/mcaptcha/static_assets/filemap/struct.FileMap.html +++ b/mcaptcha/static_assets/filemap/struct.FileMap.html @@ -6,25 +6,25 @@

FileMap

pub struct FileMap {
     pub files: Files,
-}

Fields

files: Files

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+}

Fields

files: Files

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/fn.services.html b/mcaptcha/static_assets/fn.services.html index 06161212..47c4893a 100644 --- a/mcaptcha/static_assets/fn.services.html +++ b/mcaptcha/static_assets/fn.services.html @@ -4,5 +4,5 @@
pub fn services(cfg: &mut ServiceConfig)
+

Function mcaptcha::static_assets::services

source · []
pub fn services(cfg: &mut ServiceConfig)
\ No newline at end of file diff --git a/mcaptcha/static_assets/index.html b/mcaptcha/static_assets/index.html index 0180ac34..8944328a 100644 --- a/mcaptcha/static_assets/index.html +++ b/mcaptcha/static_assets/index.html @@ -3,9 +3,9 @@

\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/index.html b/mcaptcha/static_assets/static_files/assets/index.html index 6be2d9da..99a0b471 100644 --- a/mcaptcha/static_assets/static_files/assets/index.html +++ b/mcaptcha/static_assets/static_files/assets/index.html @@ -6,5 +6,5 @@

Module assets

+
Img 🔒
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.BAR_CHART.html b/mcaptcha/static_assets/static_files/assets/struct.BAR_CHART.html index bcfd6533..a33286d3 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.BAR_CHART.html +++ b/mcaptcha/static_assets/static_files/assets/struct.BAR_CHART.html @@ -5,28 +5,28 @@
pub struct BAR_CHART {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.CREDIT_CARD.html b/mcaptcha/static_assets/static_files/assets/struct.CREDIT_CARD.html index 20229b09..9c9421a0 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.CREDIT_CARD.html +++ b/mcaptcha/static_assets/static_files/assets/struct.CREDIT_CARD.html @@ -5,28 +5,28 @@
pub struct CREDIT_CARD {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.DOCS_ICON.html b/mcaptcha/static_assets/static_files/assets/struct.DOCS_ICON.html index 33b8bc70..23ff2679 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.DOCS_ICON.html +++ b/mcaptcha/static_assets/static_files/assets/struct.DOCS_ICON.html @@ -5,28 +5,28 @@
pub struct DOCS_ICON {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.GITHUB.html b/mcaptcha/static_assets/static_files/assets/struct.GITHUB.html index 5faef8dd..37a2942e 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.GITHUB.html +++ b/mcaptcha/static_assets/static_files/assets/struct.GITHUB.html @@ -5,28 +5,28 @@
pub struct GITHUB {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.HELP_CIRCLE.html b/mcaptcha/static_assets/static_files/assets/struct.HELP_CIRCLE.html index 06ab4cd6..05577621 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.HELP_CIRCLE.html +++ b/mcaptcha/static_assets/static_files/assets/struct.HELP_CIRCLE.html @@ -5,28 +5,28 @@
pub struct HELP_CIRCLE {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.HOME.html b/mcaptcha/static_assets/static_files/assets/struct.HOME.html index c26fbe54..6aef9e3f 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.HOME.html +++ b/mcaptcha/static_assets/static_files/assets/struct.HOME.html @@ -5,28 +5,28 @@
pub struct HOME {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.KEY.html b/mcaptcha/static_assets/static_files/assets/struct.KEY.html index 2e8b671e..19d03c4c 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.KEY.html +++ b/mcaptcha/static_assets/static_files/assets/struct.KEY.html @@ -5,28 +5,28 @@
pub struct KEY {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.MCAPTCHA_TRANS_ICON.html b/mcaptcha/static_assets/static_files/assets/struct.MCAPTCHA_TRANS_ICON.html index d49e5256..3d46731f 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.MCAPTCHA_TRANS_ICON.html +++ b/mcaptcha/static_assets/static_files/assets/struct.MCAPTCHA_TRANS_ICON.html @@ -5,28 +5,28 @@
pub struct MCAPTCHA_TRANS_ICON {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.MESSAGE.html b/mcaptcha/static_assets/static_files/assets/struct.MESSAGE.html index b62fa081..8aea8561 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.MESSAGE.html +++ b/mcaptcha/static_assets/static_files/assets/struct.MESSAGE.html @@ -5,28 +5,28 @@
pub struct MESSAGE {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/struct.SETTINGS_ICON.html b/mcaptcha/static_assets/static_files/assets/struct.SETTINGS_ICON.html index 58b322f7..2e7d8c73 100644 --- a/mcaptcha/static_assets/static_files/assets/struct.SETTINGS_ICON.html +++ b/mcaptcha/static_assets/static_files/assets/struct.SETTINGS_ICON.html @@ -5,28 +5,28 @@
pub struct SETTINGS_ICON {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/assets/type.Img.html b/mcaptcha/static_assets/static_files/assets/type.Img.html index da3730e0..810f75a8 100644 --- a/mcaptcha/static_assets/static_files/assets/type.Img.html +++ b/mcaptcha/static_assets/static_files/assets/type.Img.html @@ -4,5 +4,5 @@
type Img = (&'static str, &'static str);
+

Type Definition mcaptcha::static_assets::static_files::assets::Img

source · []
type Img = (&'static str, &'static str);
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/fn.handle_assets.html b/mcaptcha/static_assets/static_files/fn.handle_assets.html index d536b99f..adb31106 100644 --- a/mcaptcha/static_assets/static_files/fn.handle_assets.html +++ b/mcaptcha/static_assets/static_files/fn.handle_assets.html @@ -4,5 +4,5 @@
fn handle_assets(path: &str) -> HttpResponse
+

Function mcaptcha::static_assets::static_files::handle_assets

source · []
fn handle_assets(path: &str) -> HttpResponse
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/fn.handle_favicons.html b/mcaptcha/static_assets/static_files/fn.handle_favicons.html index ee393271..79960ac7 100644 --- a/mcaptcha/static_assets/static_files/fn.handle_favicons.html +++ b/mcaptcha/static_assets/static_files/fn.handle_favicons.html @@ -4,5 +4,5 @@
fn handle_favicons(path: &str) -> HttpResponse
+

Function mcaptcha::static_assets::static_files::handle_favicons

source · []
fn handle_favicons(path: &str) -> HttpResponse
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/index.html b/mcaptcha/static_assets/static_files/index.html index b68ee651..190aa794 100644 --- a/mcaptcha/static_assets/static_files/index.html +++ b/mcaptcha/static_assets/static_files/index.html @@ -7,5 +7,5 @@

Module mcaptcha::static_assets::static_files

source · []

Modules

Structs

Functions

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/struct.Asset.html b/mcaptcha/static_assets/static_files/struct.Asset.html index 996e93f6..b5a53a0d 100644 --- a/mcaptcha/static_assets/static_files/struct.Asset.html +++ b/mcaptcha/static_assets/static_files/struct.Asset.html @@ -4,29 +4,29 @@
struct Asset;

Implementations

Get an embedded file and its metadata.

-

Iterates over the file paths in the folder.

-

Trait Implementations

Get an embedded file and its metadata. Read more

-

Iterates over the file paths in the folder. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::static_assets::static_files::Asset

source · []
struct Asset;

Implementations

Get an embedded file and its metadata.

+

Iterates over the file paths in the folder.

+

Trait Implementations

Get an embedded file and its metadata. Read more

+

Iterates over the file paths in the folder. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/struct.Favicons.html b/mcaptcha/static_assets/static_files/struct.Favicons.html index d43e7937..20b19437 100644 --- a/mcaptcha/static_assets/static_files/struct.Favicons.html +++ b/mcaptcha/static_assets/static_files/struct.Favicons.html @@ -4,29 +4,29 @@
struct Favicons;

Implementations

Get an embedded file and its metadata.

-

Iterates over the file paths in the folder.

-

Trait Implementations

Get an embedded file and its metadata. Read more

-

Iterates over the file paths in the folder. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::static_assets::static_files::Favicons

source · []
struct Favicons;

Implementations

Get an embedded file and its metadata.

+

Iterates over the file paths in the folder.

+

Trait Implementations

Get an embedded file and its metadata. Read more

+

Iterates over the file paths in the folder. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/struct.favicons.html b/mcaptcha/static_assets/static_files/struct.favicons.html index 379cd5ef..b22ea689 100644 --- a/mcaptcha/static_assets/static_files/struct.favicons.html +++ b/mcaptcha/static_assets/static_files/struct.favicons.html @@ -4,25 +4,25 @@
pub struct favicons;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::static_assets::static_files::favicons

source · []
pub struct favicons;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/static_assets/static_files/struct.static_files.html b/mcaptcha/static_assets/static_files/struct.static_files.html index 09bb7dc9..4c1c9860 100644 --- a/mcaptcha/static_assets/static_files/struct.static_files.html +++ b/mcaptcha/static_assets/static_files/struct.static_files.html @@ -4,25 +4,25 @@
pub struct static_files;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::static_assets::static_files::static_files

source · []
pub struct static_files;

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/stats/index.html b/mcaptcha/stats/index.html index d50c2edb..e949e7ff 100644 --- a/mcaptcha/stats/index.html +++ b/mcaptcha/stats/index.html @@ -7,5 +7,5 @@

Module mcaptcha::stats

source · []

Structs

Traits

Trait to clone MCDatabase

-
+
\ No newline at end of file diff --git a/mcaptcha/stats/struct.CaptchaStats.html b/mcaptcha/stats/struct.CaptchaStats.html index 5155d510..d710d014 100644 --- a/mcaptcha/stats/struct.CaptchaStats.html +++ b/mcaptcha/stats/struct.CaptchaStats.html @@ -5,40 +5,40 @@
pub struct CaptchaStats {
-    pub config_fetches: Vec<i64>,
-    pub solves: Vec<i64>,
-    pub confirms: Vec<i64>,
-}

Fields

config_fetches: Vec<i64>solves: Vec<i64>confirms: Vec<i64>

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

Serialize this value into the given Serde serializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub config_fetches: Vec<i64>, + pub solves: Vec<i64>, + pub confirms: Vec<i64>, +}

Fields

config_fetches: Vec<i64>solves: Vec<i64>confirms: Vec<i64>

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

Serialize this value into the given Serde serializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/stats/struct.Dummy.html b/mcaptcha/stats/struct.Dummy.html index 002ce7d7..47eeb67b 100644 --- a/mcaptcha/stats/struct.Dummy.html +++ b/mcaptcha/stats/struct.Dummy.html @@ -4,39 +4,39 @@
pub struct Dummy;

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

fetch stats

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::stats::Dummy

source · []
pub struct Dummy;

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

fetch stats

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/stats/struct.Real.html b/mcaptcha/stats/struct.Real.html index 49761f4d..fb948a3f 100644 --- a/mcaptcha/stats/struct.Real.html +++ b/mcaptcha/stats/struct.Real.html @@ -4,39 +4,39 @@
pub struct Real;

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Returns the “default value” for a type. Read more

-

This method tests for self and other values to be equal, and is used -by ==. Read more

-

This method tests for !=.

-

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

fetch stats

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::stats::Real

source · []
pub struct Real;

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Returns the “default value” for a type. Read more

+

This method tests for self and other values to be equal, and is used +by ==. Read more

+

This method tests for !=.

+

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

fetch stats

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/stats/trait.CloneStats.html b/mcaptcha/stats/trait.CloneStats.html index e7b735e8..eb31164d 100644 --- a/mcaptcha/stats/trait.CloneStats.html +++ b/mcaptcha/stats/trait.CloneStats.html @@ -5,8 +5,8 @@
pub trait CloneStats {
-    fn clone_stats(&self) -> Box<dyn Stats>;
+    fn clone_stats(&self) -> Box<dyn Stats>;
 }
Expand description

Trait to clone MCDatabase

-

Required methods

clone DB

-

Implementors

+

Required Methods

clone DB

+

Implementors

\ No newline at end of file diff --git a/mcaptcha/stats/trait.Stats.html b/mcaptcha/stats/trait.Stats.html index a81fd35d..47167e39 100644 --- a/mcaptcha/stats/trait.Stats.html +++ b/mcaptcha/stats/trait.Stats.html @@ -4,14 +4,14 @@
pub trait Stats: Send + Sync + CloneStats {
-    fn record_fetch<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        d: &'life1 Data,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn record_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        d: &'life1 Data,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn record_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        d: &'life1 Data,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; - fn fetch<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        d: &'life1 Data,
        user: &'life2 str,
        key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; -}

Required methods

record PoWConfig fetches

-

record PoWConfig solves

-

record PoWConfig confirms

-

fetch stats

-

Implementors

+

Trait mcaptcha::stats::Stats

source · []
pub trait Stats: Send + Sync + CloneStats {
+    fn record_fetch<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        d: &'life1 Data,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn record_solve<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        d: &'life1 Data,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn record_confirm<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        d: &'life1 Data,
        key: &'life2 str
    ) -> Pin<Box<dyn Future<Output = DBResult<()>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        Self: 'async_trait
; + fn fetch<'life0, 'life1, 'life2, 'life3, 'async_trait>(
        &'life0 self,
        d: &'life1 Data,
        user: &'life2 str,
        key: &'life3 str
    ) -> Pin<Box<dyn Future<Output = DBResult<CaptchaStats>> + Send + 'async_trait>>
    where
        'life0: 'async_trait,
        'life1: 'async_trait,
        'life2: 'async_trait,
        'life3: 'async_trait,
        Self: 'async_trait
; +}

Required Methods

record PoWConfig fetches

+

record PoWConfig solves

+

record PoWConfig confirms

+

fetch stats

+

Implementors

\ No newline at end of file diff --git a/mcaptcha/struct.BAR_CHART.html b/mcaptcha/struct.BAR_CHART.html index 1f7fd6d6..4f89b167 100644 --- a/mcaptcha/struct.BAR_CHART.html +++ b/mcaptcha/struct.BAR_CHART.html @@ -5,28 +5,28 @@
pub struct BAR_CHART {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.CREDIT_CARD.html b/mcaptcha/struct.CREDIT_CARD.html index 8c38b7ca..b95df1cb 100644 --- a/mcaptcha/struct.CREDIT_CARD.html +++ b/mcaptcha/struct.CREDIT_CARD.html @@ -5,28 +5,28 @@
pub struct CREDIT_CARD {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.CSS.html b/mcaptcha/struct.CSS.html index ef97f3ce..162bec03 100644 --- a/mcaptcha/struct.CSS.html +++ b/mcaptcha/struct.CSS.html @@ -5,9 +5,9 @@
pub struct CSS {
-    pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, + pub(crate) __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -17,7 +17,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -26,7 +26,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -43,7 +43,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -58,8 +58,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -72,27 +72,27 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

+If you need to mutate the contents of the string slice, use as_mut_ptr.

Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

+None whenever equivalent indexing operation would panic.

Examples
let v = String::from("🗻∈🌏");
 
@@ -104,7 +104,7 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

Safety

Callers of this function are responsible that these preconditions are @@ -123,15 +123,15 @@ violate the invariants communicated by the str type.

assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

+slice_mut_unchecked method.

Safety

Callers of this function are responsible that three preconditions are satisfied:

@@ -154,12 +154,12 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is @@ -173,10 +173,10 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

@@ -199,7 +199,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -209,12 +209,12 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

Examples

Basic usage:

@@ -235,7 +235,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -249,7 +249,7 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

Examples
@@ -263,12 +263,12 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

+instead, use split_ascii_whitespace.

Examples

Basic usage:

@@ -289,10 +289,10 @@ instead, use assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

+

To split by Unicode Whitespace instead, use split_whitespace.

Examples

Basic usage:

@@ -313,7 +313,7 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line @@ -342,9 +342,9 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

Examples

Basic usage:

@@ -354,10 +354,10 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -366,10 +366,10 @@ function or closure that determines if a character matches.

assert!(bananas.contains("nana")); assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -378,10 +378,10 @@ function or closure that determines if a character matches.

assert!(bananas.starts_with("bana")); assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -390,10 +390,10 @@ function or closure that determines if a character matches.

assert!(bananas.ends_with("anas")); assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -417,10 +417,10 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -442,16 +442,16 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

+from a forward search, the rsplit method can be used.

Examples

Simple patterns:

@@ -514,12 +514,12 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
@@ -532,15 +532,15 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

+

For iterating from the front, the split method can be used.

Examples

Simple patterns:

@@ -559,20 +559,20 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

+from a forward search, the rsplit_terminator method can be used.

Examples

Basic usage:

@@ -584,11 +584,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -596,7 +596,7 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
@@ -607,16 +607,16 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

Examples

Simple patterns:

@@ -636,17 +636,17 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

+

For splitting from the front, the splitn method can be used.

Examples

Simple patterns:

@@ -662,28 +662,28 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

+from a forward search, the rmatches method can be used.

Examples

Basic usage:

@@ -692,15 +692,15 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect(); assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

+

For iterating from the front, the matches method can be used.

Examples

Basic usage:

@@ -709,18 +709,18 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

+from a forward search, the rmatch_indices method can be used.

Examples

Basic usage:

@@ -732,17 +732,17 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect(); assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

+

For iterating from the front, the match_indices method can be used.

Examples

Basic usage:

@@ -754,18 +754,18 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or @@ -774,8 +774,8 @@ Arabic or Hebrew, this will be the right side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -783,9 +783,9 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or @@ -794,8 +794,8 @@ Arabic or Hebrew, this will be the left side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -803,8 +803,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -825,8 +825,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -847,9 +847,9 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -862,9 +862,9 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first @@ -879,29 +879,29 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last @@ -919,10 +919,10 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first @@ -937,10 +937,10 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last @@ -958,15 +958,15 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

Examples

Basic usage

@@ -984,21 +984,21 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

+

Checks if all characters in this string are within the ASCII range.

Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

Examples
@@ -1017,7 +1017,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

+

Return an iterator that escapes each char in self with char::escape_default.

Examples

As an iterator:

@@ -1034,7 +1034,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

+

Return an iterator that escapes each char in self with char::escape_unicode.

Examples

As an iterator:

@@ -1051,8 +1051,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

Examples
@@ -1065,8 +1065,8 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

Examples
@@ -1080,11 +1080,11 @@ replaces them with the replacement string slice at most count times
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1107,11 +1107,11 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1129,7 +1129,7 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

+

Creates a new String by repeating a string n times.

Panics

This function will panic if the capacity would overflow.

Examples
@@ -1140,49 +1140,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.DOCS_ICON.html b/mcaptcha/struct.DOCS_ICON.html index cdca64c5..6e43a809 100644 --- a/mcaptcha/struct.DOCS_ICON.html +++ b/mcaptcha/struct.DOCS_ICON.html @@ -5,28 +5,28 @@
pub struct DOCS_ICON {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.Data.html b/mcaptcha/struct.Data.html index 968b5576..996e8ab9 100644 --- a/mcaptcha/struct.Data.html +++ b/mcaptcha/struct.Data.html @@ -5,39 +5,39 @@
pub struct Data {
-    pub db: Box<dyn MCDatabase>,
+    pub db: Box<dyn MCDatabase>,
     pub creds: Config,
     pub captcha: SystemGroup,
-    pub mailer: Option<AsyncSmtpTransport<Tokio1Executor>>,
+    pub mailer: Option<AsyncSmtpTransport<Tokio1Executor>>,
     pub settings: Settings,
-    pub stats: Box<dyn Stats>,
+    pub stats: Box<dyn Stats>,
 }
Expand description

App data

-

Fields

db: Box<dyn MCDatabase>

database ops defined by db crates

+

Fields

db: Box<dyn MCDatabase>

database ops defined by db crates

creds: Config

credential management configuration

captcha: SystemGroup

mCaptcha system: Redis cache, etc.

-
mailer: Option<AsyncSmtpTransport<Tokio1Executor>>

email client

+
mailer: Option<AsyncSmtpTransport<Tokio1Executor>>

email client

settings: Settings

app settings

-
stats: Box<dyn Stats>

stats recorder

-

Implementations

create new instance of app data

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+
stats: Box<dyn Stats>

stats recorder

+

Implementations

create new instance of app data

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.FILES.html b/mcaptcha/struct.FILES.html index 20e689a4..0bb1f96c 100644 --- a/mcaptcha/struct.FILES.html +++ b/mcaptcha/struct.FILES.html @@ -5,28 +5,28 @@
pub struct FILES {
-    pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = FileMap>

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub(crate) __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = FileMap>

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.GITHUB.html b/mcaptcha/struct.GITHUB.html index d348932c..3fcd6a64 100644 --- a/mcaptcha/struct.GITHUB.html +++ b/mcaptcha/struct.GITHUB.html @@ -5,28 +5,28 @@
pub struct GITHUB {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.HELP_CIRCLE.html b/mcaptcha/struct.HELP_CIRCLE.html index 3d8e3301..7bc660c7 100644 --- a/mcaptcha/struct.HELP_CIRCLE.html +++ b/mcaptcha/struct.HELP_CIRCLE.html @@ -5,28 +5,28 @@
pub struct HELP_CIRCLE {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.HOME.html b/mcaptcha/struct.HOME.html index 9dab5939..f2a0aaea 100644 --- a/mcaptcha/struct.HOME.html +++ b/mcaptcha/struct.HOME.html @@ -5,28 +5,28 @@
pub struct HOME {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.JS.html b/mcaptcha/struct.JS.html index ab179caf..1025ef87 100644 --- a/mcaptcha/struct.JS.html +++ b/mcaptcha/struct.JS.html @@ -5,9 +5,9 @@

Struct mcaptcha::JS

source · []
pub struct JS {
-    pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, + pub(crate) __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -17,7 +17,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -26,7 +26,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -43,7 +43,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -58,8 +58,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -72,27 +72,27 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

+If you need to mutate the contents of the string slice, use as_mut_ptr.

Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

+None whenever equivalent indexing operation would panic.

Examples
let v = String::from("🗻∈🌏");
 
@@ -104,7 +104,7 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

Safety

Callers of this function are responsible that these preconditions are @@ -123,15 +123,15 @@ violate the invariants communicated by the str type.

assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

+slice_mut_unchecked method.

Safety

Callers of this function are responsible that three preconditions are satisfied:

@@ -154,12 +154,12 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is @@ -173,10 +173,10 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

@@ -199,7 +199,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -209,12 +209,12 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

Examples

Basic usage:

@@ -235,7 +235,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -249,7 +249,7 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

Examples
@@ -263,12 +263,12 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

+instead, use split_ascii_whitespace.

Examples

Basic usage:

@@ -289,10 +289,10 @@ instead, use assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

+

To split by Unicode Whitespace instead, use split_whitespace.

Examples

Basic usage:

@@ -313,7 +313,7 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line @@ -342,9 +342,9 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

Examples

Basic usage:

@@ -354,10 +354,10 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -366,10 +366,10 @@ function or closure that determines if a character matches.

assert!(bananas.contains("nana")); assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -378,10 +378,10 @@ function or closure that determines if a character matches.

assert!(bananas.starts_with("bana")); assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -390,10 +390,10 @@ function or closure that determines if a character matches.

assert!(bananas.ends_with("anas")); assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -417,10 +417,10 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -442,16 +442,16 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

+from a forward search, the rsplit method can be used.

Examples

Simple patterns:

@@ -514,12 +514,12 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
@@ -532,15 +532,15 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

+

For iterating from the front, the split method can be used.

Examples

Simple patterns:

@@ -559,20 +559,20 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

+from a forward search, the rsplit_terminator method can be used.

Examples

Basic usage:

@@ -584,11 +584,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -596,7 +596,7 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
@@ -607,16 +607,16 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

Examples

Simple patterns:

@@ -636,17 +636,17 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

+

For splitting from the front, the splitn method can be used.

Examples

Simple patterns:

@@ -662,28 +662,28 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

+from a forward search, the rmatches method can be used.

Examples

Basic usage:

@@ -692,15 +692,15 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect(); assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

+

For iterating from the front, the matches method can be used.

Examples

Basic usage:

@@ -709,18 +709,18 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

+from a forward search, the rmatch_indices method can be used.

Examples

Basic usage:

@@ -732,17 +732,17 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect(); assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

+

For iterating from the front, the match_indices method can be used.

Examples

Basic usage:

@@ -754,18 +754,18 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or @@ -774,8 +774,8 @@ Arabic or Hebrew, this will be the right side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -783,9 +783,9 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or @@ -794,8 +794,8 @@ Arabic or Hebrew, this will be the left side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -803,8 +803,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -825,8 +825,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -847,9 +847,9 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -862,9 +862,9 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first @@ -879,29 +879,29 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last @@ -919,10 +919,10 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first @@ -937,10 +937,10 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last @@ -958,15 +958,15 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

Examples

Basic usage

@@ -984,21 +984,21 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

+

Checks if all characters in this string are within the ASCII range.

Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

Examples
@@ -1017,7 +1017,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

+

Return an iterator that escapes each char in self with char::escape_default.

Examples

As an iterator:

@@ -1034,7 +1034,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

+

Return an iterator that escapes each char in self with char::escape_unicode.

Examples

As an iterator:

@@ -1051,8 +1051,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

Examples
@@ -1065,8 +1065,8 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

Examples
@@ -1080,11 +1080,11 @@ replaces them with the replacement string slice at most count times
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1107,11 +1107,11 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1129,7 +1129,7 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

+

Creates a new String by repeating a string n times.

Panics

This function will panic if the capacity would overflow.

Examples
@@ -1140,49 +1140,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.KEY.html b/mcaptcha/struct.KEY.html index fa92444d..702653a5 100644 --- a/mcaptcha/struct.KEY.html +++ b/mcaptcha/struct.KEY.html @@ -5,28 +5,28 @@
pub struct KEY {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.MCAPTCHA_TRANS_ICON.html b/mcaptcha/struct.MCAPTCHA_TRANS_ICON.html index 4775251e..087d0eec 100644 --- a/mcaptcha/struct.MCAPTCHA_TRANS_ICON.html +++ b/mcaptcha/struct.MCAPTCHA_TRANS_ICON.html @@ -5,28 +5,28 @@
pub struct MCAPTCHA_TRANS_ICON {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.MESSAGE.html b/mcaptcha/struct.MESSAGE.html index 8db51856..9f676063 100644 --- a/mcaptcha/struct.MESSAGE.html +++ b/mcaptcha/struct.MESSAGE.html @@ -5,28 +5,28 @@
pub struct MESSAGE {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.MOBILE_CSS.html b/mcaptcha/struct.MOBILE_CSS.html index 37b48f62..45b6e045 100644 --- a/mcaptcha/struct.MOBILE_CSS.html +++ b/mcaptcha/struct.MOBILE_CSS.html @@ -5,9 +5,9 @@
pub struct MOBILE_CSS {
-    pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, + pub(crate) __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -17,7 +17,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -26,7 +26,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -43,7 +43,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -58,8 +58,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -72,27 +72,27 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

+If you need to mutate the contents of the string slice, use as_mut_ptr.

Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

+None whenever equivalent indexing operation would panic.

Examples
let v = String::from("🗻∈🌏");
 
@@ -104,7 +104,7 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

Safety

Callers of this function are responsible that these preconditions are @@ -123,15 +123,15 @@ violate the invariants communicated by the str type.

assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

+slice_mut_unchecked method.

Safety

Callers of this function are responsible that three preconditions are satisfied:

@@ -154,12 +154,12 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is @@ -173,10 +173,10 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

@@ -199,7 +199,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -209,12 +209,12 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

Examples

Basic usage:

@@ -235,7 +235,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -249,7 +249,7 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

Examples
@@ -263,12 +263,12 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

+instead, use split_ascii_whitespace.

Examples

Basic usage:

@@ -289,10 +289,10 @@ instead, use assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

+

To split by Unicode Whitespace instead, use split_whitespace.

Examples

Basic usage:

@@ -313,7 +313,7 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line @@ -342,9 +342,9 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

Examples

Basic usage:

@@ -354,10 +354,10 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -366,10 +366,10 @@ function or closure that determines if a character matches.

assert!(bananas.contains("nana")); assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -378,10 +378,10 @@ function or closure that determines if a character matches.

assert!(bananas.starts_with("bana")); assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -390,10 +390,10 @@ function or closure that determines if a character matches.

assert!(bananas.ends_with("anas")); assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -417,10 +417,10 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -442,16 +442,16 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

+from a forward search, the rsplit method can be used.

Examples

Simple patterns:

@@ -514,12 +514,12 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
@@ -532,15 +532,15 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

+

For iterating from the front, the split method can be used.

Examples

Simple patterns:

@@ -559,20 +559,20 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

+from a forward search, the rsplit_terminator method can be used.

Examples

Basic usage:

@@ -584,11 +584,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -596,7 +596,7 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
@@ -607,16 +607,16 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

Examples

Simple patterns:

@@ -636,17 +636,17 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

+

For splitting from the front, the splitn method can be used.

Examples

Simple patterns:

@@ -662,28 +662,28 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

+from a forward search, the rmatches method can be used.

Examples

Basic usage:

@@ -692,15 +692,15 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect(); assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

+

For iterating from the front, the matches method can be used.

Examples

Basic usage:

@@ -709,18 +709,18 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

+from a forward search, the rmatch_indices method can be used.

Examples

Basic usage:

@@ -732,17 +732,17 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect(); assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

+

For iterating from the front, the match_indices method can be used.

Examples

Basic usage:

@@ -754,18 +754,18 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or @@ -774,8 +774,8 @@ Arabic or Hebrew, this will be the right side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -783,9 +783,9 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or @@ -794,8 +794,8 @@ Arabic or Hebrew, this will be the left side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -803,8 +803,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -825,8 +825,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -847,9 +847,9 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -862,9 +862,9 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first @@ -879,29 +879,29 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last @@ -919,10 +919,10 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first @@ -937,10 +937,10 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last @@ -958,15 +958,15 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

Examples

Basic usage

@@ -984,21 +984,21 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

+

Checks if all characters in this string are within the ASCII range.

Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

Examples
@@ -1017,7 +1017,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

+

Return an iterator that escapes each char in self with char::escape_default.

Examples

As an iterator:

@@ -1034,7 +1034,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

+

Return an iterator that escapes each char in self with char::escape_unicode.

Examples

As an iterator:

@@ -1051,8 +1051,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

Examples
@@ -1065,8 +1065,8 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

Examples
@@ -1080,11 +1080,11 @@ replaces them with the replacement string slice at most count times
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1107,11 +1107,11 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1129,7 +1129,7 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

+

Creates a new String by repeating a string n times.

Panics

This function will panic if the capacity would overflow.

Examples
@@ -1140,49 +1140,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.SETTINGS.html b/mcaptcha/struct.SETTINGS.html index d4fe15ab..bbc46ac3 100644 --- a/mcaptcha/struct.SETTINGS.html +++ b/mcaptcha/struct.SETTINGS.html @@ -5,28 +5,28 @@
pub struct SETTINGS {
-    pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub(crate) __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.SETTINGS_ICON.html b/mcaptcha/struct.SETTINGS_ICON.html index f562b7f0..51274605 100644 --- a/mcaptcha/struct.SETTINGS_ICON.html +++ b/mcaptcha/struct.SETTINGS_ICON.html @@ -5,28 +5,28 @@
pub struct SETTINGS_ICON {
-    __private_field: (),
-}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ __private_field: (), +}

Fields

__private_field: ()

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.SOURCE_FILES_OF_INSTANCE.html b/mcaptcha/struct.SOURCE_FILES_OF_INSTANCE.html index 176580f8..f85d0dd2 100644 --- a/mcaptcha/struct.SOURCE_FILES_OF_INSTANCE.html +++ b/mcaptcha/struct.SOURCE_FILES_OF_INSTANCE.html @@ -3,33 +3,33 @@

+

SOURCE_FILES_OF_INSTANCE

pub struct SOURCE_FILES_OF_INSTANCE {
-    pub(crate) __private_field: (),
+    pub(crate) __private_field: (),
 }
Expand description

points to source files matching build commit

-

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -41,7 +41,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -50,8 +50,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -61,7 +61,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -70,7 +70,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -87,7 +87,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -102,8 +102,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -116,28 +116,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -148,9 +180,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -160,23 +213,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -184,7 +256,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -198,17 +270,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -217,14 +306,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -243,7 +352,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -253,14 +362,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -279,7 +388,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -293,10 +402,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -307,13 +416,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -333,11 +442,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -357,13 +466,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -386,10 +495,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -398,48 +507,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -461,12 +570,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -486,17 +595,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -558,14 +667,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -576,16 +685,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -603,21 +712,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -628,11 +737,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -640,9 +749,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -651,18 +760,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -680,18 +789,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -706,29 +815,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -736,16 +845,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -753,19 +862,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -776,18 +885,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -798,28 +907,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -827,19 +936,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -847,8 +956,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -856,7 +965,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -869,8 +978,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -878,7 +987,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -891,11 +1000,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -906,16 +1015,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -923,36 +1032,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -963,17 +1072,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -981,17 +1090,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1002,17 +1111,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1028,24 +1137,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1061,8 +1192,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1078,8 +1209,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1095,11 +1226,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1109,11 +1240,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1124,13 +1255,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1151,13 +1282,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1173,10 +1304,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1184,49 +1315,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.Settings.html b/mcaptcha/struct.Settings.html index 168d2c2f..7768b457 100644 --- a/mcaptcha/struct.Settings.html +++ b/mcaptcha/struct.Settings.html @@ -5,42 +5,42 @@
pub struct Settings {
-    pub debug: bool,
-    pub commercial: bool,
+    pub debug: bool,
+    pub commercial: bool,
     pub database: Database,
-    pub redis: Option<Redis>,
+    pub redis: Option<Redis>,
     pub server: Server,
     pub captcha: Captcha,
-    pub source_code: String,
-    pub smtp: Option<Smtp>,
-    pub allow_registration: bool,
-    pub allow_demo: bool,
-}

Fields

debug: boolcommercial: booldatabase: Databaseredis: Option<Redis>server: Servercaptcha: Captchasource_code: Stringsmtp: Option<Smtp>allow_registration: boolallow_demo: bool

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Formats the value using the given formatter. Read more

-

Deserialize this value from the given Serde deserializer. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub source_code: String, + pub smtp: Option<Smtp>, + pub allow_registration: bool, + pub allow_demo: bool, +}

Fields

debug: boolcommercial: booldatabase: Databaseredis: Option<Redis>server: Servercaptcha: Captchasource_code: Stringsmtp: Option<Smtp>allow_registration: boolallow_demo: bool

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Formats the value using the given formatter. Read more

+

Deserialize this value from the given Serde deserializer. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.VERIFICATIN_WIDGET_CSS.html b/mcaptcha/struct.VERIFICATIN_WIDGET_CSS.html index 4c702cdc..4615e60b 100644 --- a/mcaptcha/struct.VERIFICATIN_WIDGET_CSS.html +++ b/mcaptcha/struct.VERIFICATIN_WIDGET_CSS.html @@ -5,9 +5,9 @@
pub struct VERIFICATIN_WIDGET_CSS {
-    pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, + pub(crate) __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -17,7 +17,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -26,7 +26,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -43,7 +43,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -58,8 +58,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -72,27 +72,27 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

+If you need to mutate the contents of the string slice, use as_mut_ptr.

Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

+None whenever equivalent indexing operation would panic.

Examples
let v = String::from("🗻∈🌏");
 
@@ -104,7 +104,7 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

Safety

Callers of this function are responsible that these preconditions are @@ -123,15 +123,15 @@ violate the invariants communicated by the str type.

assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

+slice_mut_unchecked method.

Safety

Callers of this function are responsible that three preconditions are satisfied:

@@ -154,12 +154,12 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is @@ -173,10 +173,10 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

@@ -199,7 +199,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -209,12 +209,12 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

Examples

Basic usage:

@@ -235,7 +235,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -249,7 +249,7 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

Examples
@@ -263,12 +263,12 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

+instead, use split_ascii_whitespace.

Examples

Basic usage:

@@ -289,10 +289,10 @@ instead, use assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

+

To split by Unicode Whitespace instead, use split_whitespace.

Examples

Basic usage:

@@ -313,7 +313,7 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line @@ -342,9 +342,9 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

Examples

Basic usage:

@@ -354,10 +354,10 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -366,10 +366,10 @@ function or closure that determines if a character matches.

assert!(bananas.contains("nana")); assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -378,10 +378,10 @@ function or closure that determines if a character matches.

assert!(bananas.starts_with("bana")); assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -390,10 +390,10 @@ function or closure that determines if a character matches.

assert!(bananas.ends_with("anas")); assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -417,10 +417,10 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -442,16 +442,16 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

+from a forward search, the rsplit method can be used.

Examples

Simple patterns:

@@ -514,12 +514,12 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
@@ -532,15 +532,15 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

+

For iterating from the front, the split method can be used.

Examples

Simple patterns:

@@ -559,20 +559,20 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

+from a forward search, the rsplit_terminator method can be used.

Examples

Basic usage:

@@ -584,11 +584,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -596,7 +596,7 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
@@ -607,16 +607,16 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

Examples

Simple patterns:

@@ -636,17 +636,17 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

+

For splitting from the front, the splitn method can be used.

Examples

Simple patterns:

@@ -662,28 +662,28 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

+from a forward search, the rmatches method can be used.

Examples

Basic usage:

@@ -692,15 +692,15 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect(); assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

+

For iterating from the front, the matches method can be used.

Examples

Basic usage:

@@ -709,18 +709,18 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

+from a forward search, the rmatch_indices method can be used.

Examples

Basic usage:

@@ -732,17 +732,17 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect(); assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

+

For iterating from the front, the match_indices method can be used.

Examples

Basic usage:

@@ -754,18 +754,18 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or @@ -774,8 +774,8 @@ Arabic or Hebrew, this will be the right side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -783,9 +783,9 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or @@ -794,8 +794,8 @@ Arabic or Hebrew, this will be the left side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -803,8 +803,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -825,8 +825,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -847,9 +847,9 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -862,9 +862,9 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first @@ -879,29 +879,29 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last @@ -919,10 +919,10 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first @@ -937,10 +937,10 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last @@ -958,15 +958,15 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

Examples

Basic usage

@@ -984,21 +984,21 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

+

Checks if all characters in this string are within the ASCII range.

Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

Examples
@@ -1017,7 +1017,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

+

Return an iterator that escapes each char in self with char::escape_default.

Examples

As an iterator:

@@ -1034,7 +1034,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

+

Return an iterator that escapes each char in self with char::escape_unicode.

Examples

As an iterator:

@@ -1051,8 +1051,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

Examples
@@ -1065,8 +1065,8 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

Examples
@@ -1080,11 +1080,11 @@ replaces them with the replacement string slice at most count times
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1107,11 +1107,11 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1129,7 +1129,7 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

+

Creates a new String by repeating a string n times.

Panics

This function will panic if the capacity would overflow.

Examples
@@ -1140,49 +1140,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/struct.VERIFICATIN_WIDGET_JS.html b/mcaptcha/struct.VERIFICATIN_WIDGET_JS.html index 9b872e3f..d4ce4ff8 100644 --- a/mcaptcha/struct.VERIFICATIN_WIDGET_JS.html +++ b/mcaptcha/struct.VERIFICATIN_WIDGET_JS.html @@ -5,9 +5,9 @@
pub struct VERIFICATIN_WIDGET_JS {
-    pub(crate) __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, + pub(crate) __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = &'static str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -17,7 +17,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -26,7 +26,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -43,7 +43,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -58,8 +58,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -72,27 +72,27 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

+If you need to mutate the contents of the string slice, use as_mut_ptr.

Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

+None whenever equivalent indexing operation would panic.

Examples
let v = String::from("🗻∈🌏");
 
@@ -104,7 +104,7 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

Safety

Callers of this function are responsible that these preconditions are @@ -123,15 +123,15 @@ violate the invariants communicated by the str type.

assert_eq!("∈", v.get_unchecked(4..7)); assert_eq!("🌏", v.get_unchecked(7..11)); }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

+slice_mut_unchecked method.

Safety

Callers of this function are responsible that three preconditions are satisfied:

@@ -154,12 +154,12 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is @@ -173,10 +173,10 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

@@ -199,7 +199,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -209,12 +209,12 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

Examples

Basic usage:

@@ -235,7 +235,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -249,7 +249,7 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

Examples
@@ -263,12 +263,12 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

+instead, use split_ascii_whitespace.

Examples

Basic usage:

@@ -289,10 +289,10 @@ instead, use assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

+

To split by Unicode Whitespace instead, use split_whitespace.

Examples

Basic usage:

@@ -313,7 +313,7 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line @@ -342,9 +342,9 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

Examples

Basic usage:

@@ -354,10 +354,10 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -366,10 +366,10 @@ function or closure that determines if a character matches.

assert!(bananas.contains("nana")); assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -378,10 +378,10 @@ function or closure that determines if a character matches.

assert!(bananas.starts_with("bana")); assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Basic usage:

@@ -390,10 +390,10 @@ function or closure that determines if a character matches.

assert!(bananas.ends_with("anas")); assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -417,10 +417,10 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -442,16 +442,16 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

+from a forward search, the rsplit method can be used.

Examples

Simple patterns:

@@ -514,12 +514,12 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
@@ -532,15 +532,15 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

+

For iterating from the front, the split method can be used.

Examples

Simple patterns:

@@ -559,20 +559,20 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

+from a forward search, the rsplit_terminator method can be used.

Examples

Basic usage:

@@ -584,11 +584,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -596,7 +596,7 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
@@ -607,16 +607,16 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

Examples

Simple patterns:

@@ -636,17 +636,17 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

+

For splitting from the front, the splitn method can be used.

Examples

Simple patterns:

@@ -662,28 +662,28 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

+from a forward search, the rmatches method can be used.

Examples

Basic usage:

@@ -692,15 +692,15 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect(); assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

+

For iterating from the front, the matches method can be used.

Examples

Basic usage:

@@ -709,18 +709,18 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

+from a forward search, the rmatch_indices method can be used.

Examples

Basic usage:

@@ -732,17 +732,17 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect(); assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

+

For iterating from the front, the match_indices method can be used.

Examples

Basic usage:

@@ -754,18 +754,18 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or @@ -774,8 +774,8 @@ Arabic or Hebrew, this will be the right side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -783,9 +783,9 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or @@ -794,8 +794,8 @@ Arabic or Hebrew, this will be the left side.

Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -803,8 +803,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -825,8 +825,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -847,9 +847,9 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

Examples

Simple patterns:

@@ -862,9 +862,9 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first @@ -879,29 +879,29 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last @@ -919,10 +919,10 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first @@ -937,10 +937,10 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last @@ -958,15 +958,15 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

Examples

Basic usage

@@ -984,21 +984,21 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

+

Checks if all characters in this string are within the ASCII range.

Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

Examples
@@ -1017,7 +1017,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

+

Return an iterator that escapes each char in self with char::escape_default.

Examples

As an iterator:

@@ -1034,7 +1034,7 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

+

Return an iterator that escapes each char in self with char::escape_unicode.

Examples

As an iterator:

@@ -1051,8 +1051,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

Examples
@@ -1065,8 +1065,8 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

Examples
@@ -1080,11 +1080,11 @@ replaces them with the replacement string slice at most count times
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1107,11 +1107,11 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

Examples

Basic usage:

@@ -1129,7 +1129,7 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

+

Creates a new String by repeating a string n times.

Panics

This function will panic if the capacity would overflow.

Examples
@@ -1140,49 +1140,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/type.AppData.html b/mcaptcha/type.AppData.html index a827bb05..16cb7726 100644 --- a/mcaptcha/type.AppData.html +++ b/mcaptcha/type.AppData.html @@ -4,5 +4,5 @@
-

Type Definition mcaptcha::AppData

source · []
pub type AppData = Data<ArcData>;
+

Type Definition mcaptcha::AppData

source · []
pub type AppData = Data<ArcData>;
\ No newline at end of file diff --git a/mcaptcha/type.ArcData.html b/mcaptcha/type.ArcData.html index af3ede82..d00e6770 100644 --- a/mcaptcha/type.ArcData.html +++ b/mcaptcha/type.ArcData.html @@ -4,5 +4,5 @@
-

Type Definition mcaptcha::ArcData

source · []
pub type ArcData = Arc<Data>;
+

Type Definition mcaptcha::ArcData

source · []
pub type ArcData = Arc<Data>;
\ No newline at end of file diff --git a/mcaptcha/widget/constant.PAGE.html b/mcaptcha/widget/constant.PAGE.html index da358cbf..5a44bc34 100644 --- a/mcaptcha/widget/constant.PAGE.html +++ b/mcaptcha/widget/constant.PAGE.html @@ -4,5 +4,5 @@
-

Constant mcaptcha::widget::PAGE

source · []
const PAGE: &str = "mCaptcha CAPTCHA verification";
+

Constant mcaptcha::widget::PAGE

source · []
const PAGE: &str = "mCaptcha CAPTCHA verification";
\ No newline at end of file diff --git a/mcaptcha/widget/constant.WIDGET_ROUTES.html b/mcaptcha/widget/constant.WIDGET_ROUTES.html index 1328ac54..d0c8d451 100644 --- a/mcaptcha/widget/constant.WIDGET_ROUTES.html +++ b/mcaptcha/widget/constant.WIDGET_ROUTES.html @@ -4,5 +4,5 @@
pub const WIDGET_ROUTES: Widget;
+

Constant mcaptcha::widget::WIDGET_ROUTES

source · []
pub const WIDGET_ROUTES: Widget;
\ No newline at end of file diff --git a/mcaptcha/widget/fn.services.html b/mcaptcha/widget/fn.services.html index 54969630..0088d651 100644 --- a/mcaptcha/widget/fn.services.html +++ b/mcaptcha/widget/fn.services.html @@ -5,5 +5,5 @@
pub fn services(cfg: &mut ServiceConfig)
Expand description

widget services

-
+
\ No newline at end of file diff --git a/mcaptcha/widget/index.html b/mcaptcha/widget/index.html index 8621af12..a0f99db5 100644 --- a/mcaptcha/widget/index.html +++ b/mcaptcha/widget/index.html @@ -11,5 +11,5 @@

Constants

Functions

widget services

-
+
\ No newline at end of file diff --git a/mcaptcha/widget/routes/index.html b/mcaptcha/widget/routes/index.html index 38e7d8e2..0af9a590 100644 --- a/mcaptcha/widget/routes/index.html +++ b/mcaptcha/widget/routes/index.html @@ -5,5 +5,5 @@
+
\ No newline at end of file diff --git a/mcaptcha/widget/routes/struct.Widget.html b/mcaptcha/widget/routes/struct.Widget.html index ad03cf35..79e364a4 100644 --- a/mcaptcha/widget/routes/struct.Widget.html +++ b/mcaptcha/widget/routes/struct.Widget.html @@ -5,26 +5,26 @@
pub struct Widget {
-    pub verification_widget: &'static str,
-}

Fields

verification_widget: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+ pub verification_widget: &'static str, +}

Fields

verification_widget: &'static str

Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/widget/struct.INDEX_PAGE.html b/mcaptcha/widget/struct.INDEX_PAGE.html index c452864a..8c028994 100644 --- a/mcaptcha/widget/struct.INDEX_PAGE.html +++ b/mcaptcha/widget/struct.INDEX_PAGE.html @@ -3,32 +3,32 @@

+

INDEX_PAGE

struct INDEX_PAGE {
-    __private_field: (),
-}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

+ __private_field: (), +}

Fields

__private_field: ()

Methods from Deref<Target = String>

Extracts a string slice containing the entire String.

Examples

Basic usage:

let s = String::from("foo");
 
 assert_eq!("foo", s.as_str());
-

Returns this String’s capacity, in bytes.

+

Returns this String’s capacity, in bytes.

Examples

Basic usage:

let s = String::with_capacity(10);
 
 assert!(s.capacity() >= 10);
-

Returns a byte slice of this String’s contents.

-

The inverse of this method is from_utf8.

+

Returns a byte slice of this String’s contents.

+

The inverse of this method is from_utf8.

Examples

Basic usage:

let s = String::from("hello");
 
 assert_eq!(&[104, 101, 108, 108, 111], s.as_bytes());
-

Returns the length of this String, in bytes, not chars or +

Returns the length of this String, in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples
@@ -40,7 +40,7 @@ length of the string.

let fancy_f = String::from("ƒoo"); assert_eq!(fancy_f.len(), 4); assert_eq!(fancy_f.chars().count(), 3);
-

Returns true if this String has a length of zero, and false otherwise.

+

Returns true if this String has a length of zero, and false otherwise.

Examples

Basic usage:

@@ -49,8 +49,8 @@ length of the string.

v.push('a'); assert!(!v.is_empty());
-

Methods from Deref<Target = str>

Returns the length of self.

-

This length is in bytes, not chars or graphemes. In other words, +

Methods from Deref<Target = str>

Returns the length of self.

+

This length is in bytes, not chars or graphemes. In other words, it might not be what a human considers the length of the string.

Examples

Basic usage:

@@ -60,7 +60,7 @@ it might not be what a human considers the length of the string.

assert_eq!("ƒoo".len(), 4); // fancy f! assert_eq!("ƒoo".chars().count(), 3);
-

Returns true if self has a length of zero bytes.

+

Returns true if self has a length of zero bytes.

Examples

Basic usage:

@@ -69,7 +69,7 @@ it might not be what a human considers the length of the string.

let s = "not empty"; assert!(!s.is_empty());
-

Checks that index-th byte is the first byte in a UTF-8 code point +

Checks that index-th byte is the first byte in a UTF-8 code point sequence or the end of the string.

The start and end of the string (when index == self.len()) are considered to be boundaries.

@@ -86,7 +86,7 @@ considered to be boundaries.

// third byte of `老` assert!(!s.is_char_boundary(8));
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

+
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not exceeding index where is_char_boundary(x) is true.

This method can help you truncate a string so that it’s still valid UTF-8, but doesn’t exceed a given number of bytes. Note that this is done purely at the character level and can still visually split graphemes, even though the underlying characters aren’t @@ -101,8 +101,8 @@ includes 🧑 (person) instead.

let closest = s.floor_char_boundary(13); assert_eq!(closest, 10); assert_eq!(&s[..closest], "❤️🧡");
-
🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

-

This method is the natural complement to floor_char_boundary. See that method +

🔬 This is a nightly-only experimental API. (round_char_boundary)

Finds the closest x not below index where is_char_boundary(x) is true.

+

This method is the natural complement to floor_char_boundary. See that method for more details.

Panics

Panics if index > self.len().

@@ -115,28 +115,60 @@ for more details.

let closest = s.ceil_char_boundary(13); assert_eq!(closest, 14); assert_eq!(&s[..closest], "❤️🧡💛");
-

Converts a string slice to a byte slice. To convert the byte slice back -into a string slice, use the from_utf8 function.

+

Converts a string slice to a byte slice. To convert the byte slice back +into a string slice, use the from_utf8 function.

Examples

Basic usage:

let bytes = "bors".as_bytes();
 assert_eq!(b"bors", bytes);
-

Converts a string slice to a raw pointer.

+

Converts a mutable string slice to a mutable byte slice.

+
Safety
+

The caller must ensure that the content of the slice is valid UTF-8 +before the borrow ends and the underlying str is used.

+

Use of a str whose contents are not valid UTF-8 is undefined behavior.

+
Examples
+

Basic usage:

+ +
let mut s = String::from("Hello");
+let bytes = unsafe { s.as_bytes_mut() };
+
+assert_eq!(b"Hello", bytes);
+

Mutability:

+ +
let mut s = String::from("🗻∈🌏");
+
+unsafe {
+    let bytes = s.as_bytes_mut();
+
+    bytes[0] = 0xF0;
+    bytes[1] = 0x9F;
+    bytes[2] = 0x8D;
+    bytes[3] = 0x94;
+}
+
+assert_eq!("🍔∈🌏", s);
+

Converts a string slice to a raw pointer.

As string slices are a slice of bytes, the raw pointer points to a -u8. This pointer will be pointing to the first byte of the string +u8. This pointer will be pointing to the first byte of the string slice.

The caller must ensure that the returned pointer is never written to. -If you need to mutate the contents of the string slice, use as_mut_ptr.

-
Examples
+If you need to mutate the contents of the string slice, use as_mut_ptr.

+
Examples

Basic usage:

let s = "Hello";
 let ptr = s.as_ptr();
-

Returns a subslice of str.

+

Converts a mutable string slice to a raw pointer.

+

As string slices are a slice of bytes, the raw pointer points to a +u8. This pointer will be pointing to the first byte of the string +slice.

+

It is your responsibility to make sure that the string slice only gets +modified in a way that it remains valid UTF-8.

+

Returns a subslice of str.

This is the non-panicking alternative to indexing the str. Returns -None whenever equivalent indexing operation would panic.

-
Examples
+None whenever equivalent indexing operation would panic.

+
Examples
let v = String::from("🗻∈🌏");
 
 assert_eq!(Some("🗻"), v.get(0..4));
@@ -147,9 +179,30 @@ If you need to mutate the contents of the string slice, use // out of bounds
 assert!(v.get(..42).is_none());
-

Returns an unchecked subslice of str.

+

Returns a mutable subslice of str.

+

This is the non-panicking alternative to indexing the str. Returns +None whenever equivalent indexing operation would panic.

+
Examples
+
let mut v = String::from("hello");
+// correct length
+assert!(v.get_mut(0..5).is_some());
+// out of bounds
+assert!(v.get_mut(..42).is_none());
+assert_eq!(Some("he"), v.get_mut(0..2).map(|v| &*v));
+
+assert_eq!("hello", v);
+{
+    let s = v.get_mut(0..2);
+    let s = s.map(|s| {
+        s.make_ascii_uppercase();
+        &*s
+    });
+    assert_eq!(Some("HE"), s);
+}
+assert_eq!("HEllo", v);
+

Returns an unchecked subslice of str.

This is the unchecked alternative to indexing the str.

-
Safety
+
Safety

Callers of this function are responsible that these preconditions are satisfied:

    @@ -159,23 +212,42 @@ satisfied:

Failing that, the returned string slice may reference invalid memory or violate the invariants communicated by the str type.

-
Examples
+
Examples
let v = "🗻∈🌏";
 unsafe {
     assert_eq!("🗻", v.get_unchecked(0..4));
     assert_eq!("∈", v.get_unchecked(4..7));
     assert_eq!("🌏", v.get_unchecked(7..11));
 }
-
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

-

Creates a string slice from another string slice, bypassing safety +

Returns a mutable, unchecked subslice of str.

+

This is the unchecked alternative to indexing the str.

+
Safety
+

Callers of this function are responsible that these preconditions are +satisfied:

+
    +
  • The starting index must not exceed the ending index;
  • +
  • Indexes must be within bounds of the original slice;
  • +
  • Indexes must lie on UTF-8 sequence boundaries.
  • +
+

Failing that, the returned string slice may reference invalid memory or +violate the invariants communicated by the str type.

+
Examples
+
let mut v = String::from("🗻∈🌏");
+unsafe {
+    assert_eq!("🗻", v.get_unchecked_mut(0..4));
+    assert_eq!("∈", v.get_unchecked_mut(4..7));
+    assert_eq!("🌏", v.get_unchecked_mut(7..11));
+}
+
👎 Deprecated since 1.29.0:

use get_unchecked(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety checks.

This is generally not recommended, use with caution! For a safe -alternative see str and Index.

+alternative see str and Index.

This new slice goes from begin to end, including begin but excluding end.

To get a mutable string slice instead, see the -slice_mut_unchecked method.

-
Safety
+slice_mut_unchecked method.

+
Safety

Callers of this function are responsible that three preconditions are satisfied:

    @@ -183,7 +255,7 @@ satisfied:

  • begin and end must be byte positions within the string slice.
  • begin and end must lie on UTF-8 sequence boundaries.
-
Examples
+
Examples

Basic usage:

let s = "Löwe 老虎 Léopard";
@@ -197,17 +269,34 @@ satisfied:

unsafe { assert_eq!("world", s.slice_unchecked(7, 12)); }
-

Divide one string slice into two at an index.

+
👎 Deprecated since 1.29.0:

use get_unchecked_mut(begin..end) instead

+

Creates a string slice from another string slice, bypassing safety +checks. +This is generally not recommended, use with caution! For a safe +alternative see str and IndexMut.

+

This new slice goes from begin to end, including begin but +excluding end.

+

To get an immutable string slice instead, see the +slice_unchecked method.

+
Safety
+

Callers of this function are responsible that three preconditions are +satisfied:

+
    +
  • begin must not exceed end.
  • +
  • begin and end must be byte positions within the string slice.
  • +
  • begin and end must lie on UTF-8 sequence boundaries.
  • +
+

Divide one string slice into two at an index.

The argument, mid, should be a byte offset from the start of the string. It must also be on the boundary of a UTF-8 code point.

The two slices returned go from the start of the string slice to mid, and from mid to the end of the string slice.

-

To get mutable string slices instead, see the split_at_mut +

To get mutable string slices instead, see the split_at_mut method.

Panics

Panics if mid is not on a UTF-8 code point boundary, or if it is past the end of the last code point of the string slice.

-
Examples
+
Examples

Basic usage:

let s = "Per Martin-Löf";
@@ -216,14 +305,34 @@ past the end of the last code point of the string slice.

assert_eq!("Per", first); assert_eq!(" Martin-Löf", last);
-

Returns an iterator over the chars of a string slice.

+

Divide one mutable string slice into two at an index.

+

The argument, mid, should be a byte offset from the start of the +string. It must also be on the boundary of a UTF-8 code point.

+

The two slices returned go from the start of the string slice to mid, +and from mid to the end of the string slice.

+

To get immutable string slices instead, see the split_at method.

+
Panics
+

Panics if mid is not on a UTF-8 code point boundary, or if it is +past the end of the last code point of the string slice.

+
Examples
+

Basic usage:

+ +
let mut s = "Per Martin-Löf".to_string();
+{
+    let (first, last) = s.split_at_mut(3);
+    first.make_ascii_uppercase();
+    assert_eq!("PER", first);
+    assert_eq!(" Martin-Löf", last);
+}
+assert_eq!("PER Martin-Löf", s);
+

Returns an iterator over the chars of a string slice.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns such an iterator.

-

It’s important to remember that char represents a Unicode Scalar +string slice by char. This method returns such an iterator.

+

It’s important to remember that char represents a Unicode Scalar Value, and might not match your idea of what a ‘character’ is. Iteration over grapheme clusters may be what you actually want. This functionality is not provided by Rust’s standard library, check crates.io instead.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -242,7 +351,7 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('e'), chars.next()); assert_eq!(None, chars.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let y = "y̆";
 
@@ -252,14 +361,14 @@ is not provided by Rust’s standard library, check crates.io instead.

assert_eq!(Some('\u{0306}'), chars.next()); assert_eq!(None, chars.next());
-

Returns an iterator over the chars of a string slice, and their +

Returns an iterator over the chars of a string slice, and their positions.

As a string slice consists of valid UTF-8, we can iterate through a -string slice by char. This method returns an iterator of both -these chars, as well as their byte positions.

-

The iterator yields tuples. The position is first, the char is +string slice by char. This method returns an iterator of both +these chars, as well as their byte positions.

+

The iterator yields tuples. The position is first, the char is second.

-
Examples
+
Examples

Basic usage:

let word = "goodbye";
@@ -278,7 +387,7 @@ second.

assert_eq!(Some((6, 'e')), char_indices.next()); assert_eq!(None, char_indices.next());
-

Remember, chars might not match your intuition about characters:

+

Remember, chars might not match your intuition about characters:

let yes = "y̆es";
 
@@ -292,10 +401,10 @@ second.

assert_eq!(Some((4, 's')), char_indices.next()); assert_eq!(None, char_indices.next());
-

An iterator over the bytes of a string slice.

+

An iterator over the bytes of a string slice.

As a string slice consists of a sequence of bytes, we can iterate through a string slice by byte. This method returns such an iterator.

-
Examples
+
Examples

Basic usage:

let mut bytes = "bors".bytes();
@@ -306,13 +415,13 @@ through a string slice by byte. This method returns such an iterator.

assert_eq!(Some(b's'), bytes.next()); assert_eq!(None, bytes.next());
-

Splits a string slice by whitespace.

+

Splits a string slice by whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of whitespace.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space. If you only want to split on ASCII whitespace -instead, use split_ascii_whitespace.

-
Examples
+instead, use split_ascii_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_whitespace();
@@ -332,11 +441,11 @@ instead, use assert_eq!(Some("lamb"), iter.next());
 
 assert_eq!(None, iter.next());
-

Splits a string slice by ASCII whitespace.

+

Splits a string slice by ASCII whitespace.

The iterator returned will return string slices that are sub-slices of the original string slice, separated by any amount of ASCII whitespace.

-

To split by Unicode Whitespace instead, use split_whitespace.

-
Examples
+

To split by Unicode Whitespace instead, use split_whitespace.

+
Examples

Basic usage:

let mut iter = "A few words".split_ascii_whitespace();
@@ -356,13 +465,13 @@ the original string slice, separated by any amount of ASCII whitespace.

assert_eq!(Some("lamb"), iter.next()); assert_eq!(None, iter.next());
-

An iterator over the lines of a string, as string slices.

+

An iterator over the lines of a string, as string slices.

Lines are ended with either a newline (\n) or a carriage return with a line feed (\r\n).

The final line ending is optional. A string that ends with a final line ending will return the same lines as an otherwise identical string without a final line ending.

-
Examples
+
Examples

Basic usage:

let text = "foo\r\nbar\n\nbaz\n";
@@ -385,10 +494,10 @@ without a final line ending.

assert_eq!(Some("baz"), lines.next()); assert_eq!(None, lines.next());
-
👎 Deprecated since 1.4.0:

use lines() instead now

-

An iterator over the lines of a string.

-

Returns an iterator of u16 over the string encoded as UTF-16.

-
Examples
+
👎 Deprecated since 1.4.0:

use lines() instead now

+

An iterator over the lines of a string.

+

Returns an iterator of u16 over the string encoded as UTF-16.

+
Examples

Basic usage:

let text = "Zażółć gęślą jaźń";
@@ -397,48 +506,48 @@ without a final line ending.

let utf16_len = text.encode_utf16().count(); assert!(utf16_len <= utf8_len);
-

Returns true if the given pattern matches a sub-slice of +

Returns true if the given pattern matches a sub-slice of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.contains("nana"));
 assert!(!bananas.contains("apples"));
-

Returns true if the given pattern matches a prefix of this +

Returns true if the given pattern matches a prefix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.starts_with("bana"));
 assert!(!bananas.starts_with("nana"));
-

Returns true if the given pattern matches a suffix of this +

Returns true if the given pattern matches a suffix of this string slice.

Returns false if it does not.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Basic usage:

let bananas = "bananas";
 
 assert!(bananas.ends_with("anas"));
 assert!(!bananas.ends_with("nana"));
-

Returns the byte index of the first character of this string slice that +

Returns the byte index of the first character of this string slice that matches the pattern.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -460,12 +569,12 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.find(x), None);
-

Returns the byte index for the first character of the rightmost match of the pattern in +

Returns the byte index for the first character of the rightmost match of the pattern in this string slice.

-

Returns None if the pattern doesn’t match.

-

The pattern can be a &str, char, a slice of chars, or a +

Returns None if the pattern doesn’t match.

+

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

let s = "Löwe 老虎 Léopard Gepardi";
@@ -485,17 +594,17 @@ function or closure that determines if a character matches.

let x: &[_] = &['1', '2']; assert_eq!(s.rfind(x), None);
-

An iterator over substrings of this string slice, separated by +

An iterator over substrings of this string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit method can be used.

-
Examples
+from a forward search, the rsplit method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".split(' ').collect();
@@ -557,14 +666,14 @@ when whitespace is used as the separator. This code is correct:

It does not give you:

assert_eq!(d, &["a", "b", "c"]);
-

Use split_whitespace for this behavior.

-

An iterator over substrings of this string slice, separated by +

Use split_whitespace for this behavior.

+

An iterator over substrings of this string slice, separated by characters matched by a pattern. Differs from the iterator produced by split in that split_inclusive leaves the matched part as the terminator of the substring.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb."
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb."]);
@@ -575,16 +684,16 @@ That substring will be the last item returned by the iterator.

let v: Vec<&str> = "Mary had a little lamb\nlittle lamb\nlittle lamb.\n"
     .split_inclusive('\n').collect();
 assert_eq!(v, ["Mary had a little lamb\n", "little lamb\n", "little lamb.\n"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the split method can be used.

-
Examples
+

For iterating from the front, the split method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplit(' ').collect();
@@ -602,21 +711,21 @@ search yields the same elements.

let v: Vec<&str> = "abc1defXghi".rsplit(|c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "def", "abc"]);
-

An iterator over substrings of the given string slice, separated by +

An iterator over substrings of the given string slice, separated by characters matched by a pattern.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rsplit_terminator method can be used.

-
Examples
+from a forward search, the rsplit_terminator method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "A.B.".split_terminator('.').collect();
@@ -627,11 +736,11 @@ from a forward search, the let v: Vec<&str> = "A.B:C.D".split_terminator(&['.', ':'][..]).collect();
 assert_eq!(v, ["A", "B", "C", "D"]);
-

An iterator over substrings of self, separated by characters +

An iterator over substrings of self, separated by characters matched by a pattern and yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-

Equivalent to split, except that the trailing substring is +

Equivalent to split, except that the trailing substring is skipped if empty.

This method can be used for string data that is terminated, rather than separated by a pattern.

@@ -639,9 +748,9 @@ rather than separated by a pattern.

The returned iterator requires that the pattern supports a reverse search, and it will be double ended if a forward/reverse search yields the same elements.

-

For iterating from the front, the split_terminator method can be +

For iterating from the front, the split_terminator method can be used.

-
Examples
+
Examples
let v: Vec<&str> = "A.B.".rsplit_terminator('.').collect();
 assert_eq!(v, ["B", "A"]);
 
@@ -650,18 +759,18 @@ used.

let v: Vec<&str> = "A.B:C.D".rsplit_terminator(&['.', ':'][..]).collect(); assert_eq!(v, ["D", "C", "B", "A"]);
-

An iterator over substrings of the given string slice, separated by a +

An iterator over substrings of the given string slice, separated by a pattern, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

If the pattern allows a reverse search, the rsplitn method can be +

If the pattern allows a reverse search, the rsplitn method can be used.

-
Examples
+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lambda".splitn(3, ' ').collect();
@@ -679,18 +788,18 @@ used.

let v: Vec<&str> = "abc1defXghi".splitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["abc", "defXghi"]);
-

An iterator over substrings of this string slice, separated by a +

An iterator over substrings of this string slice, separated by a pattern, starting from the end of the string, restricted to returning at most n items.

If n substrings are returned, the last substring (the nth substring) will contain the remainder of the string.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator will not be double ended, because it is not efficient to support.

-

For splitting from the front, the splitn method can be used.

-
Examples
+

For splitting from the front, the splitn method can be used.

+
Examples

Simple patterns:

let v: Vec<&str> = "Mary had a little lamb".rsplitn(3, ' ').collect();
@@ -705,29 +814,29 @@ efficient to support.

let v: Vec<&str> = "abc1defXghi".rsplitn(2, |c| c == '1' || c == 'X').collect();
 assert_eq!(v, ["ghi", "abc1def"]);
-

Splits the string on the first occurrence of the specified delimiter and +

Splits the string on the first occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".split_once('='), None);
 assert_eq!("cfg=foo".split_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".split_once('='), Some(("cfg", "foo=bar")));
-

Splits the string on the last occurrence of the specified delimiter and +

Splits the string on the last occurrence of the specified delimiter and returns prefix before delimiter and suffix after delimiter.

-
Examples
+
Examples
assert_eq!("cfg".rsplit_once('='), None);
 assert_eq!("cfg=foo".rsplit_once('='), Some(("cfg", "foo")));
 assert_eq!("cfg=foo=bar".rsplit_once('='), Some(("cfg=foo", "bar")));
-

An iterator over the disjoint matches of a pattern within the given string +

An iterator over the disjoint matches of a pattern within the given string slice.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatches method can be used.

-
Examples
+from a forward search, the rmatches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".matches("abc").collect();
@@ -735,16 +844,16 @@ from a forward search, the let v: Vec<&str> = "1abc2abc3".matches(char::is_numeric).collect();
 assert_eq!(v, ["1", "2", "3"]);
-

An iterator over the disjoint matches of a pattern within this string slice, +

An iterator over the disjoint matches of a pattern within this string slice, yielded in reverse order.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the matches method can be used.

-
Examples
+

For iterating from the front, the matches method can be used.

+
Examples

Basic usage:

let v: Vec<&str> = "abcXXXabcYYYabc".rmatches("abc").collect();
@@ -752,19 +861,19 @@ search yields the same elements.

let v: Vec<&str> = "1abc2abc3".rmatches(char::is_numeric).collect(); assert_eq!(v, ["3", "2", "1"]);
-

An iterator over the disjoint matches of a pattern within this string +

An iterator over the disjoint matches of a pattern within this string slice as well as the index that the match starts at.

For matches of pat within self that overlap, only the indices corresponding to the first match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior
-

The returned iterator will be a DoubleEndedIterator if the pattern +

The returned iterator will be a DoubleEndedIterator if the pattern allows a reverse search and forward/reverse search yields the same -elements. This is true for, e.g., char, but not for &str.

+elements. This is true for, e.g., char, but not for &str.

If the pattern allows a reverse search but its results might differ -from a forward search, the rmatch_indices method can be used.

-
Examples
+from a forward search, the rmatch_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".match_indices("abc").collect();
@@ -775,18 +884,18 @@ from a forward search, the let v: Vec<_> = "ababa".match_indices("aba").collect();
 assert_eq!(v, [(0, "aba")]); // only the first `aba`
-

An iterator over the disjoint matches of a pattern within self, +

An iterator over the disjoint matches of a pattern within self, yielded in reverse order along with the index of the match.

For matches of pat within self that overlap, only the indices corresponding to the last match are returned.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Iterator behavior

The returned iterator requires that the pattern supports a reverse -search, and it will be a DoubleEndedIterator if a forward/reverse +search, and it will be a DoubleEndedIterator if a forward/reverse search yields the same elements.

-

For iterating from the front, the match_indices method can be used.

-
Examples
+

For iterating from the front, the match_indices method can be used.

+
Examples

Basic usage:

let v: Vec<_> = "abcXXXabcYYYabc".rmatch_indices("abc").collect();
@@ -797,28 +906,28 @@ search yields the same elements.

let v: Vec<_> = "ababa".rmatch_indices("aba").collect(); assert_eq!(v, [(2, "aba")]); // only the last `aba`
-

Returns a string slice with leading and trailing whitespace removed.

+

Returns a string slice with leading and trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

-
Examples
+Core Property White_Space, which includes newlines.

+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
+
let s = "\n Hello\tworld\t\n";
 
 assert_eq!("Hello\tworld", s.trim());
-

Returns a string slice with leading whitespace removed.

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!("Hello\tworld\t", s.trim_start());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("Hello\tworld\t\n", s.trim_start());

Directionality:

let s = "  English  ";
@@ -826,19 +935,19 @@ Arabic or Hebrew, this will be the right side.

let s = " עברית "; assert!(Some('ע') == s.trim_start().chars().next());
-

Returns a string slice with trailing whitespace removed.

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived -Core Property White_Space.

+Core Property White_Space, which includes newlines.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Basic usage:

-
let s = " Hello\tworld\t";
-assert_eq!(" Hello\tworld", s.trim_end());
+
let s = "\n Hello\tworld\t\n";
+assert_eq!("\n Hello\tworld", s.trim_end());

Directionality:

let s = "  English  ";
@@ -846,8 +955,8 @@ Arabic or Hebrew, this will be the left side.

let s = " עברית "; assert!(Some('ת') == s.trim_end().chars().rev().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_start

-

Returns a string slice with leading whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_start

+

Returns a string slice with leading whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -855,7 +964,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -868,8 +977,8 @@ the right side, not the left.

let s = " עברית"; assert!(Some('ע') == s.trim_left().chars().next());
-
👎 Deprecated since 1.33.0:

superseded by trim_end

-

Returns a string slice with trailing whitespace removed.

+
👎 Deprecated since 1.33.0:

superseded by trim_end

+

Returns a string slice with trailing whitespace removed.

‘Whitespace’ is defined according to the terms of the Unicode Derived Core Property White_Space.

Text directionality
@@ -877,7 +986,7 @@ Core Property White_Space.

position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Basic usage:

let s = " Hello\tworld\t";
@@ -890,11 +999,11 @@ the left side, not the right.

let s = "עברית "; assert!(Some('ת') == s.trim_right().chars().rev().next());
-

Returns a string slice with all prefixes and suffixes that match a +

Returns a string slice with all prefixes and suffixes that match a pattern repeatedly removed.

-

The pattern can be a char, a slice of chars, or a function +

The pattern can be a char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_matches('1'), "foo1bar");
@@ -905,16 +1014,16 @@ or closure that determines if a character matches.

A more complex pattern, using a closure:

assert_eq!("1foo1barXX".trim_matches(|c| c == '1' || c == 'X'), "foo1bar");
-

Returns a string slice with all prefixes that match a pattern +

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. start in this context means the first position of that byte string; for a left-to-right language like English or Russian, this will be left side, and for right-to-left languages like Arabic or Hebrew, this will be the right side.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_start_matches('1'), "foo1bar11");
@@ -922,36 +1031,36 @@ Arabic or Hebrew, this will be the right side.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_start_matches(x), "foo1bar12");
-

Returns a string slice with the prefix removed.

+

Returns a string slice with the prefix removed.

If the string starts with the pattern prefix, returns substring after the prefix, wrapped in Some. Unlike trim_start_matches, this method removes the prefix exactly once.

If the string does not start with prefix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("foo:bar".strip_prefix("foo:"), Some("bar"));
 assert_eq!("foo:bar".strip_prefix("bar"), None);
 assert_eq!("foofoo".strip_prefix("foo"), Some("foo"));
-

Returns a string slice with the suffix removed.

+

Returns a string slice with the suffix removed.

If the string ends with the pattern suffix, returns the substring before the suffix, wrapped in Some. Unlike trim_end_matches, this method removes the suffix exactly once.

If the string does not end with suffix, returns None.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

-
Examples
+
Examples
assert_eq!("bar:foo".strip_suffix(":foo"), Some("bar"));
 assert_eq!("bar:foo".strip_suffix("bar"), None);
 assert_eq!("foofoo".strip_suffix("foo"), Some("foo"));
-

Returns a string slice with all suffixes that match a pattern +

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. end in this context means the last position of that byte string; for a left-to-right language like English or Russian, this will be right side, and for right-to-left languages like Arabic or Hebrew, this will be the left side.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_end_matches('1'), "11foo1bar");
@@ -962,17 +1071,17 @@ Arabic or Hebrew, this will be the left side.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_end_matches(|c| c == '1' || c == 'X'), "1foo");
-
👎 Deprecated since 1.33.0:

superseded by trim_start_matches

-

Returns a string slice with all prefixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_start_matches

+

Returns a string slice with all prefixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Left’ in this context means the first position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the right side, not the left.

-
Examples
+
Examples

Basic usage:

assert_eq!("11foo1bar11".trim_left_matches('1'), "foo1bar11");
@@ -980,17 +1089,17 @@ the right side, not the left.

let x: &[_] = &['1', '2']; assert_eq!("12foo1bar12".trim_left_matches(x), "foo1bar12");
-
👎 Deprecated since 1.33.0:

superseded by trim_end_matches

-

Returns a string slice with all suffixes that match a pattern +

👎 Deprecated since 1.33.0:

superseded by trim_end_matches

+

Returns a string slice with all suffixes that match a pattern repeatedly removed.

-

The pattern can be a &str, char, a slice of chars, or a +

The pattern can be a &str, char, a slice of chars, or a function or closure that determines if a character matches.

Text directionality

A string is a sequence of bytes. ‘Right’ in this context means the last position of that byte string; for a language like Arabic or Hebrew which are ‘right to left’ rather than ‘left to right’, this will be the left side, not the right.

-
Examples
+
Examples

Simple patterns:

assert_eq!("11foo1bar11".trim_right_matches('1'), "11foo1bar");
@@ -1001,17 +1110,17 @@ the left side, not the right.

A more complex pattern, using a closure:

assert_eq!("1fooX".trim_right_matches(|c| c == '1' || c == 'X'), "1foo");
-

Parses this string slice into another type.

+

Parses this string slice into another type.

Because parse is so general, it can cause problems with type inference. As such, parse is one of the few times you’ll see the syntax affectionately known as the ‘turbofish’: ::<>. This helps the inference algorithm understand specifically which type you’re trying to parse into.

-

parse can parse into any type that implements the FromStr trait.

+

parse can parse into any type that implements the FromStr trait.

Errors
-

Will return Err if it’s not possible to parse this string slice into +

Will return Err if it’s not possible to parse this string slice into the desired type.

-
Examples
+
Examples

Basic usage

let four: u32 = "4".parse().unwrap();
@@ -1027,24 +1136,46 @@ the desired type.

let nope = "j".parse::<u32>();
 
 assert!(nope.is_err());
-

Checks if all characters in this string are within the ASCII range.

-
Examples
+

Checks if all characters in this string are within the ASCII range.

+
Examples
let ascii = "hello!\n";
 let non_ascii = "Grüße, Jürgen ❤";
 
 assert!(ascii.is_ascii());
 assert!(!non_ascii.is_ascii());
-

Checks that two strings are an ASCII case-insensitive match.

+

Checks that two strings are an ASCII case-insensitive match.

Same as to_ascii_lowercase(a) == to_ascii_lowercase(b), but without allocating and copying temporaries.

-
Examples
+
Examples
assert!("Ferris".eq_ignore_ascii_case("FERRIS"));
 assert!("Ferrös".eq_ignore_ascii_case("FERRöS"));
 assert!(!"Ferrös".eq_ignore_ascii_case("FERRÖS"));
-

Return an iterator that escapes each char in self with char::escape_debug.

+

Converts this string to its ASCII upper case equivalent in-place.

+

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, +but non-ASCII letters are unchanged.

+

To return a new uppercased value without modifying the existing one, use +to_ascii_uppercase().

+
Examples
+
let mut s = String::from("Grüße, Jürgen ❤");
+
+s.make_ascii_uppercase();
+
+assert_eq!("GRüßE, JüRGEN ❤", s);
+

Converts this string to its ASCII lower case equivalent in-place.

+

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, +but non-ASCII letters are unchanged.

+

To return a new lowercased value without modifying the existing one, use +to_ascii_lowercase().

+
Examples
+
let mut s = String::from("GRÜßE, JÜRGEN ❤");
+
+s.make_ascii_lowercase();
+
+assert_eq!("grÜße, jÜrgen ❤", s);
+

Return an iterator that escapes each char in self with char::escape_debug.

Note: only extended grapheme codepoints that begin the string will be escaped.

-
Examples
+
Examples

As an iterator:

for c in "❤\n!".escape_debug() {
@@ -1060,8 +1191,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_debug().to_string(), "❤\\n!");
-

Return an iterator that escapes each char in self with char::escape_default.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_default.

+
Examples

As an iterator:

for c in "❤\n!".escape_default() {
@@ -1077,8 +1208,8 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_default().to_string(), "\\u{2764}\\n!");
-

Return an iterator that escapes each char in self with char::escape_unicode.

-
Examples
+

Return an iterator that escapes each char in self with char::escape_unicode.

+
Examples

As an iterator:

for c in "❤\n!".escape_unicode() {
@@ -1094,11 +1225,11 @@ escaped.

Using to_string:

assert_eq!("❤\n!".escape_unicode().to_string(), "\\u{2764}\\u{a}\\u{21}");
-

Replaces all matches of a pattern with another string.

-

replace creates a new String, and copies the data from this string slice into it. +

Replaces all matches of a pattern with another string.

+

replace creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice.

-
Examples
+
Examples

Basic usage:

let s = "this is old";
@@ -1108,11 +1239,11 @@ replaces them with the replacement string slice.

let s = "this is old";
 assert_eq!(s, s.replace("cookie monster", "little lamb"));
-

Replaces first N matches of a pattern with another string.

-

replacen creates a new String, and copies the data from this string slice into it. +

Replaces first N matches of a pattern with another string.

+

replacen creates a new String, and copies the data from this string slice into it. While doing so, it attempts to find matches of a pattern. If it finds any, it replaces them with the replacement string slice at most count times.

-
Examples
+
Examples

Basic usage:

let s = "foo foo 123 foo";
@@ -1123,13 +1254,13 @@ replaces them with the replacement string slice at most count times
 
 
let s = "this is old";
 assert_eq!(s, s.replacen("cookie monster", "little lamb", 10));
-

Returns the lowercase equivalent of this string slice, as a new String.

+

Returns the lowercase equivalent of this string slice, as a new String.

‘Lowercase’ is defined according to the terms of the Unicode Derived Core Property Lowercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "HELLO";
@@ -1150,13 +1281,13 @@ parameter in-place.

let new_year = "农历新年";
 
 assert_eq!(new_year, new_year.to_lowercase());
-

Returns the uppercase equivalent of this string slice, as a new String.

+

Returns the uppercase equivalent of this string slice, as a new String.

‘Uppercase’ is defined according to the terms of the Unicode Derived Core Property Uppercase.

Since some characters can expand into multiple characters when changing -the case, this function returns a String instead of modifying the +the case, this function returns a String instead of modifying the parameter in-place.

-
Examples
+
Examples

Basic usage:

let s = "hello";
@@ -1172,10 +1303,10 @@ parameter in-place.

let s = "tschüß";
 
 assert_eq!("TSCHÜSS", s.to_uppercase());
-

Creates a new String by repeating a string n times.

-
Panics
+

Creates a new String by repeating a string n times.

+
Panics

This function will panic if the capacity would overflow.

-
Examples
+
Examples

Basic usage:

assert_eq!("abc".repeat(4), String::from("abcabcabcabc"));
@@ -1183,49 +1314,49 @@ parameter in-place.

// this will panic at runtime
 let huge = "0123456789abcdef".repeat(usize::MAX);
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII upper case equivalent.

ASCII letters ‘a’ to ‘z’ are mapped to ‘A’ to ‘Z’, but non-ASCII letters are unchanged.

-

To uppercase the value in-place, use make_ascii_uppercase.

+

To uppercase the value in-place, use make_ascii_uppercase.

To uppercase ASCII characters in addition to non-ASCII characters, use to_uppercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("GRüßE, JüRGEN ❤", s.to_ascii_uppercase());
-

Returns a copy of this string where each character is mapped to its +

Returns a copy of this string where each character is mapped to its ASCII lower case equivalent.

ASCII letters ‘A’ to ‘Z’ are mapped to ‘a’ to ‘z’, but non-ASCII letters are unchanged.

-

To lowercase the value in-place, use make_ascii_lowercase.

+

To lowercase the value in-place, use make_ascii_lowercase.

To lowercase ASCII characters in addition to non-ASCII characters, use to_lowercase.

-
Examples
+
Examples
let s = "Grüße, Jürgen ❤";
 
 assert_eq!("grüße, jürgen ❤", s.to_ascii_lowercase());
-

Trait Implementations

The resulting type after dereferencing.

-

Dereferences the value.

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

The resulting type after dereferencing.

+

Dereferences the value.

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/widget/struct.IndexPage.html b/mcaptcha/widget/struct.IndexPage.html index 3755c95b..0ee3864c 100644 --- a/mcaptcha/widget/struct.IndexPage.html +++ b/mcaptcha/widget/struct.IndexPage.html @@ -4,32 +4,32 @@
pub struct IndexPage;

Implementations

Trait Implementations

Returns a copy of the value. Read more

-

Performs copy-assignment from source. Read more

-

Render the template and return the rendering result as RenderResult Read more

-

Render the template and append the result to buf. Read more

-

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Struct mcaptcha::widget::IndexPage

source · []
pub struct IndexPage;

Implementations

Trait Implementations

Returns a copy of the value. Read more

+

Performs copy-assignment from source. Read more

+

Render the template and return the rendering result as RenderResult Read more

+

Render the template and append the result to buf. Read more

+

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The resulting type after obtaining ownership.

-

Creates owned data from borrowed data, usually by cloning. Read more

-
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The resulting type after obtaining ownership.

+

Creates owned data from borrowed data, usually by cloning. Read more

+
🔬 This is a nightly-only experimental API. (toowned_clone_into)

Uses borrowed data to replace owned data, usually by cloning. Read more

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/mcaptcha/widget/struct.show_widget.html b/mcaptcha/widget/struct.show_widget.html index 0cdedbfd..d4090266 100644 --- a/mcaptcha/widget/struct.show_widget.html +++ b/mcaptcha/widget/struct.show_widget.html @@ -5,25 +5,25 @@
pub struct show_widget;
Expand description

render a client side widget for CAPTCHA verification

-

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

-

Immutably borrows from an owned value. Read more

-

Mutably borrows from an owned value. Read more

-

Returns the argument unchanged.

+

Trait Implementations

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

+

Immutably borrows from an owned value. Read more

+

Mutably borrows from an owned value. Read more

+

Returns the argument unchanged.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

-

Calls U::from(self).

+

Calls U::from(self).

That is, this conversion is whatever the implementation of -From<T> for U chooses to do.

-

Should always be Self

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

The type returned in the event of a conversion error.

-

Performs the conversion.

-

Attaches the provided Subscriber to this type, returning a +From<T> for U chooses to do.

+

Should always be Self

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

The type returned in the event of a conversion error.

+

Performs the conversion.

+

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more

-
+
\ No newline at end of file diff --git a/rustdoc.css b/rustdoc.css index ed8c6c73..46b58774 100644 --- a/rustdoc.css +++ b/rustdoc.css @@ -1 +1 @@ - @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2"),url("FiraSans-Regular.woff") format('woff');font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2"),url("FiraSans-Medium.woff") format('woff');font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2"),url("SourceSerif4-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2"),url("SourceSerif4-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2"),url("SourceSerif4-Bold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2"),url("SourceCodePro-Regular.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2"),url("SourceCodePro-It.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2"),url("SourceCodePro-Semibold.ttf.woff") format("woff");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2"),url("NanumBarunGothic.ttf.woff") format("woff");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;flex-wrap:wrap;justify-content:space-between;padding-bottom:6px;margin-bottom:15px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4{border-bottom:1px solid;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;border-bottom-style:none;margin:0;padding:0;margin-top:0.6em;margin-bottom:0.4em;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p{margin:0 0 .75em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{padding:1px 6px;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;text-transform:uppercase;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{font-size:0.875rem;width:250px;min-width:200px;overflow-y:scroll;position:sticky;height:100vh;top:0;left:0;}.sidebar-elems,.sidebar>.location{padding-left:24px;}.sidebar .location{overflow-wrap:anywhere;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(#sidebar-toggle){opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*:not(#sidebar-toggle){opacity:1;visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.hidden{display:none !important;}.sidebar .logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.block{padding:0;}.block ul,.block li{padding:0;margin:0;list-style:none;}.block a,h2.location a{display:block;padding:0.25rem;margin-left:-0.25rem;text-overflow:ellipsis;overflow:hidden;}.sidebar h2{border-bottom:none;font-weight:500;padding:0;margin:0;margin-top:0.7rem;margin-bottom:0.7rem;}.sidebar h3{font-size:1.125rem;font-weight:500;padding:0;margin:0;}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;}.mobile-topbar{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.line-numbers{text-align:right;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;font-size:1.125rem;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.125rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.875rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.content .item-info code{font-size:0.875rem;}.content .item-info{position:relative;margin-left:24px;}.sub-variant>div>.item-info{margin-top:initial;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;margin-left:0;}nav.sub{flex-grow:1;margin-bottom:25px;}.source nav.sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):hover,.docblock-short a:not(.srclink):not(.test-arrow):hover,.item-info a{text-decoration:underline;}.block a.current.crate{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.25rem;}.search-container{position:relative;display:flex;height:34px;}.search-container>*{height:100%;}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.25em;padding-left:0.3125em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container{margin-top:4px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:1px solid;border-radius:2px;padding:8px;font-size:1rem;transition:border-color 300ms ease;width:100%;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:inline-block;}.stab{padding:3px;margin-bottom:5px;font-size:0.875rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.25rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.875rem;line-height:1.2;margin-bottom:0;margin-left:0.3125em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.rightside{float:right;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}a.test-arrow:hover{text-decoration:none;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;}h3.variant{font-weight:600;font-size:1.125rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;display:block;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#sidebar-toggle{position:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-38px;top:4px;}.theme-picker button{outline:none;}#settings-menu,#help-button{margin-left:4px;outline:none;}#theme-picker,#copy-path{height:34px;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:5px;width:33px;border:1px solid;border-radius:2px;cursor:pointer;}#help-button{font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:20px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.125rem;display:block;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.625rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{padding-top:0px;display:block;}main{padding-left:15px;padding-top:0px;}.rustdoc,.main-heading{flex-direction:column;}.content .out-of-band{text-align:left;margin-left:initial;padding:initial;}.content .out-of-band .since::before{content:"Since ";}#copy-path{display:none;}.sidebar .sidebar-logo,.sidebar .location{display:none;}.sidebar-elems{margin-top:1em;}.sidebar{position:fixed;top:45px;left:-1000px;margin-left:0;background-color:rgba(0,0,0,0);margin:0;padding:0;z-index:11;height:calc(100vh - 45px);}.source main,.source .sidebar{top:0;padding:0;}.sidebar.shown,.sidebar.expanded,.sidebar:focus-within{left:0;}.rustdoc.source>.sidebar{position:fixed;margin:0;z-index:11;width:0;}.mobile-topbar .location a{padding:0;margin:0;}.mobile-topbar .location{border:none;padding:0;margin:auto 0.5em auto auto;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:24px;}.mobile-topbar .logo-container{max-height:45px;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin-left:20px;margin-top:5px;margin-bottom:5px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.source .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;}.source nav:not(.sidebar).sub{margin-left:32px;}#theme-picker{display:none;width:0;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}#crate-search{border-radius:4px;border:0;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.method-toggle summary,.implementors-toggle summary,.impl{margin-bottom:0.75em;}.method-toggle[open]{margin-bottom:2em;}.implementors-toggle[open]{margin-bottom:2em;}#trait-implementations-list .method-toggle,#synthetic-implementations-list .method-toggle,#blanket-implementations-list .method-toggle{margin-bottom:1em;}.scraped-example-title{font-family:'Fira Sans';}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow:hidden;max-height:240px;}.scraped-example:not(.expanded) .code-wrapper .example-wrap pre.rust{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;background:linear-gradient(to bottom,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;background:linear-gradient(to top,rgba(255,255,255,1),rgba(255,255,255,0));}.scraped-example:not(.expanded) .code-wrapper{overflow:hidden;max-height:240px;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.scraped-example .example-wrap .rust span.highlight{background:#fcffd6;}.scraped-example .example-wrap .rust span.highlight.focus{background:#f6fdb0;}.more-examples-toggle{margin-top:10px;}.more-examples-toggle summary{color:#999;font-family:'Fira Sans';}.more-scraped-examples{margin-left:25px;display:flex;flex-direction:row;width:calc(100% - 25px);}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line:hover .toggle-line-inner{background:#aaa;}.toggle-line-inner{min-width:2px;background:#ddd;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;} \ No newline at end of file + @font-face {font-family:'Fira Sans';font-style:normal;font-weight:400;src:local('Fira Sans'),url("FiraSans-Regular.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Fira Sans';font-style:normal;font-weight:500;src:local('Fira Sans Medium'),url("FiraSans-Medium.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:400;src:local('Source Serif 4'),url("SourceSerif4-Regular.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:italic;font-weight:400;src:local('Source Serif 4 Italic'),url("SourceSerif4-It.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Serif 4';font-style:normal;font-weight:700;src:local('Source Serif 4 Bold'),url("SourceSerif4-Bold.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:400;src:url("SourceCodePro-Regular.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:italic;font-weight:400;src:url("SourceCodePro-It.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'Source Code Pro';font-style:normal;font-weight:600;src:url("SourceCodePro-Semibold.ttf.woff2") format("woff2");font-display:swap;}@font-face {font-family:'NanumBarunGothic';src:url("NanumBarunGothic.ttf.woff2") format("woff2");font-display:swap;unicode-range:U+AC00-D7AF,U+1100-11FF,U+3130-318F,U+A960-A97F,U+D7B0-D7FF;}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;}html{content:"";}@media (prefers-color-scheme:light){html{content:"light";}}@media (prefers-color-scheme:dark){html{content:"dark";}}body{font:1rem/1.5 "Source Serif 4",NanumBarunGothic,serif;margin:0;position:relative;overflow-wrap:break-word;overflow-wrap:anywhere;-webkit-font-feature-settings:"kern","liga";-moz-font-feature-settings:"kern","liga";font-feature-settings:"kern","liga";}h1{font-size:1.5rem;}h2{font-size:1.375rem;}h3{font-size:1.25rem;}h1,h2,h3,h4,h5,h6{font-weight:500;}h1,h2,h3,h4{margin:20px 0 15px 0;padding-bottom:6px;}.docblock h3,.docblock h4,h5,h6{margin:15px 0 5px 0;}h1.fqn{margin:0;padding:0;}.main-heading{display:flex;flex-wrap:wrap;justify-content:space-between;padding-bottom:6px;margin-bottom:15px;}.main-heading a:hover{text-decoration:underline;}#toggle-all-docs{text-decoration:none;}h2,.top-doc h3,.top-doc h4{border-bottom:1px solid;}h3.code-header{font-size:1.125rem;}h4.code-header{font-size:1rem;}.code-header{font-weight:600;border-bottom-style:none;margin:0;padding:0;margin-top:0.6em;margin-bottom:0.4em;}.impl,.impl-items .method,.methods .method,.impl-items .type,.methods .type,.impl-items .associatedconstant,.methods .associatedconstant,.impl-items .associatedtype,.methods .associatedtype{flex-basis:100%;font-weight:600;position:relative;}div.impl-items>div{padding-left:0;}h1,h2,h3,h4,h5,h6,.sidebar,.mobile-topbar,a.source,.search-input,.search-results .result-name,.content table td:first-child>a,.item-left>a,.out-of-band,span.since,#source-sidebar,#sidebar-toggle,details.rustdoc-toggle>summary::before,div.impl-items>div:not(.docblock):not(.item-info),.content ul.crate a.crate,a.srclink,#main-content>ul.docblock>li>a{font-family:"Fira Sans",Arial,NanumBarunGothic,sans-serif;}ol,ul{padding-left:24px;}ul ul,ol ul,ul ol,ol ol{margin-bottom:.625em;}p{margin:0 0 .75em 0;}summary{outline:none;}td,th{padding:0;}table{border-collapse:collapse;}button,input,optgroup,select,textarea{color:inherit;font:inherit;margin:0;}button{padding:1px 6px;}.rustdoc{display:flex;flex-direction:row;flex-wrap:nowrap;}main{position:relative;flex-grow:1;padding:10px 15px 40px 45px;min-width:0;}.source main{padding:15px;}.width-limiter{max-width:960px;margin-right:auto;}.source .width-limiter{max-width:unset;}details:not(.rustdoc-toggle) summary{margin-bottom:.6em;}code,pre,a.test-arrow,.code-header{font-family:"Source Code Pro",monospace;}.docblock code,.docblock-short code{border-radius:3px;padding:0 0.125em;}.docblock pre code,.docblock-short pre code{padding:0;}pre{padding:14px;}.docblock.item-decl{margin-left:0;}.item-decl pre{overflow-x:auto;}.source .content pre{padding:20px;}img{max-width:100%;}li{position:relative;}.source .content{max-width:none;overflow:visible;margin-left:0px;}nav.sub{position:relative;font-size:1rem;}.sub-container{display:flex;flex-direction:row;flex-wrap:nowrap;}.sub-logo-container{display:none;margin-right:20px;}.source .sub-logo-container{display:block;}.source .sub-logo-container>img{height:60px;width:60px;object-fit:contain;}.sidebar{font-size:0.875rem;width:250px;min-width:200px;overflow-y:scroll;position:sticky;height:100vh;top:0;left:0;}.sidebar-elems,.sidebar>.location{padding-left:24px;}.sidebar .location{overflow-wrap:anywhere;}.rustdoc.source .sidebar{width:50px;min-width:0px;max-width:300px;flex-grow:0;flex-shrink:0;flex-basis:auto;border-right:1px solid;overflow-x:hidden;overflow-y:hidden;}.source .sidebar>*:not(#sidebar-toggle){opacity:0;visibility:hidden;}.source .sidebar.expanded{overflow-y:auto;}.source .sidebar.expanded>*:not(#sidebar-toggle){opacity:1;visibility:visible;}#all-types{margin-top:1em;}*{scrollbar-width:initial;}.sidebar{scrollbar-width:thin;}::-webkit-scrollbar{width:12px;}.sidebar::-webkit-scrollbar{width:8px;}::-webkit-scrollbar-track{-webkit-box-shadow:inset 0;}.hidden{display:none !important;}.sidebar .logo-container{display:flex;margin-top:10px;margin-bottom:10px;justify-content:center;}.version{overflow-wrap:break-word;}.logo-container>img{height:100px;width:100px;}.location:empty{border:none;}.location a:first-of-type{font-weight:500;}.block{padding:0;}.block ul,.block li{padding:0;margin:0;list-style:none;}.block a,h2.location a{display:block;padding:0.25rem;margin-left:-0.25rem;text-overflow:ellipsis;overflow:hidden;}.sidebar h2{border-bottom:none;font-weight:500;padding:0;margin:0;margin-top:0.7rem;margin-bottom:0.7rem;}.sidebar h3{font-size:1.125rem;font-weight:500;padding:0;margin:0;}.sidebar-elems .block{margin-bottom:2em;}.sidebar-elems .block li a{white-space:nowrap;}.mobile-topbar{display:none;}.source .content pre.rust{white-space:pre;overflow:auto;padding-left:0;}.rustdoc .example-wrap{display:inline-flex;margin-bottom:10px;}.example-wrap{position:relative;width:100%;}.example-wrap>pre.line-number{overflow:initial;border:1px solid;padding:13px 8px;text-align:right;border-top-left-radius:5px;border-bottom-left-radius:5px;}.example-wrap>pre.rust a:hover{text-decoration:underline;}.line-numbers{text-align:right;}.rustdoc:not(.source) .example-wrap>pre:not(.line-number){width:100%;overflow-x:auto;}.rustdoc:not(.source) .example-wrap>pre.line-numbers{width:auto;overflow-x:visible;}.rustdoc .example-wrap>pre{margin:0;}#search{position:relative;}.search-loading{text-align:center;}#results>table{width:100%;table-layout:fixed;}.content>.example-wrap pre.line-numbers{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;}.line-numbers span{cursor:pointer;}.docblock-short{overflow-wrap:break-word;overflow-wrap:anywhere;}.docblock-short p{display:inline;}.docblock-short p{overflow:hidden;text-overflow:ellipsis;margin:0;}.docblock>:not(pre)>code,.docblock-short>:not(pre)>code{white-space:pre-wrap;}.top-doc .docblock h2{font-size:1.375rem;}.top-doc .docblock h3{font-size:1.25;}.top-doc .docblock h4,.top-doc .docblock h5{font-size:1.125rem;}.top-doc .docblock h6{font-size:1rem;}.docblock h5{font-size:1rem;}.docblock h6{font-size:0.875rem;}.docblock{margin-left:24px;position:relative;}.docblock>:not(.information):not(.more-examples-toggle){max-width:100%;overflow-x:auto;}.content .out-of-band{flex-grow:0;font-size:1.125rem;font-weight:normal;float:right;}.method>.code-header,.trait-impl>.code-header{max-width:calc(100% - 41px);display:block;}.invisible{width:100%;display:inline-block;}.content .in-band{flex-grow:1;margin:0px;padding:0px;overflow-wrap:break-word;overflow-wrap:anywhere;}.in-band>code,.in-band>.code-header{display:inline-block;}#main-content{position:relative;}#main-content>.since{top:inherit;font-family:"Fira Sans",Arial,sans-serif;}.content table:not(.table-display){border-spacing:0 5px;}.content td{vertical-align:top;}.content td:first-child{padding-right:20px;}.content td p:first-child{margin-top:0;}.content td h1,.content td h2{margin-left:0;font-size:1.125rem;}.content tr:first-child td{border-top:0;}.docblock table{margin:.5em 0;width:calc(100% - 2px);overflow-x:auto;display:block;}.docblock table td{padding:.5em;border:1px dashed;}.docblock table th{padding:.5em;text-align:left;border:1px solid;}.fields+table{margin-bottom:1em;}.content .item-list{list-style-type:none;padding:0;}.content .multi-column{-moz-column-count:5;-moz-column-gap:2.5em;-webkit-column-count:5;-webkit-column-gap:2.5em;column-count:5;column-gap:2.5em;}.content .multi-column li{width:100%;display:inline-block;}.content>.methods>.method{font-size:1rem;position:relative;}.content .method .where,.content .fn .where,.content .where.fmt-newline{display:block;font-size:0.875rem;}.content .methods>div:not(.notable-traits):not(.method){margin-left:40px;margin-bottom:15px;}.content .docblock>.impl-items{margin-left:20px;margin-top:-34px;}.content .docblock>.impl-items .table-display{margin:0;}.content .docblock>.impl-items table td{padding:0;}.content .docblock>.impl-items .table-display,.impl-items table td{border:none;}.item-info{display:block;}.content .item-info code{font-size:0.875rem;}.content .item-info{position:relative;margin-left:24px;}.sub-variant>div>.item-info{margin-top:initial;}.content .impl-items .docblock,.content .impl-items .item-info{margin-bottom:.6em;}.content .impl-items>.item-info{margin-left:40px;}.methods>.item-info,.content .impl-items>.item-info{margin-top:-8px;}.impl-items{flex-basis:100%;}#main-content>.item-info{margin-top:0;margin-left:0;}nav.sub{flex-grow:1;margin-bottom:25px;}.source nav.sub{margin-left:32px;}nav.main{padding:20px 0;text-align:center;}nav.main .current{border-top:1px solid;border-bottom:1px solid;}nav.main .separator{border:1px solid;display:inline-block;height:23px;margin:0 20px;}nav.sum{text-align:right;}nav.sub form{display:inline;}a{text-decoration:none;background:transparent;}.small-section-header{display:flex;justify-content:space-between;position:relative;}.small-section-header:hover>.anchor{display:initial;}.in-band:hover>.anchor,.impl:hover>.anchor,.method.trait-impl:hover>.anchor,.type.trait-impl:hover>.anchor,.associatedconstant.trait-impl:hover>.anchor,.associatedtype.trait-impl:hover>.anchor{display:inline-block;position:absolute;}.anchor{display:none;position:absolute;left:-0.5em;background:none !important;}.anchor.field{left:-5px;}.small-section-header>.anchor{left:-15px;padding-right:8px;}h2.small-section-header>.anchor{padding-right:6px;}.anchor::before{content:'§';}.docblock a:not(.srclink):not(.test-arrow):not(.scrape-help):hover,.docblock-short a:not(.srclink):not(.test-arrow):not(.scrape-help):hover,.item-info a{text-decoration:underline;}.block a.current.crate{font-weight:500;}table,.item-table{overflow-wrap:break-word;}.item-table{display:table;}.item-row{display:table-row;}.item-left,.item-right{display:table-cell;}.item-left{padding-right:1.25rem;}.search-container{position:relative;display:flex;height:34px;}.search-container>*{height:100%;}.search-results-title{display:inline;}#search-settings{font-size:1.5rem;font-weight:500;margin-bottom:20px;}#crate-search{min-width:115px;margin-top:5px;margin-left:0.25em;padding-left:0.3125em;padding-right:23px;border:0;border-radius:4px;outline:none;cursor:pointer;-moz-appearance:none;-webkit-appearance:none;text-indent:0.01px;text-overflow:"";background-repeat:no-repeat;background-color:transparent;background-size:20px;background-position:calc(100% - 1px) 56%;background-image:url("down-arrow.svg");}.search-container{margin-top:4px;}.search-input{-webkit-appearance:none;-moz-box-sizing:border-box !important;box-sizing:border-box !important;outline:none;border:1px solid;border-radius:2px;padding:8px;font-size:1rem;transition:border-color 300ms ease;width:100%;}.search-results{display:none;padding-bottom:2em;}.search-results.active{display:block;clear:both;}.search-results .desc>span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden;display:block;}.search-results>a{display:block;width:100%;margin-left:2px;margin-right:2px;border-bottom:1px solid #aaa3;}.search-results>a>div{display:flex;flex-flow:row wrap;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:50%;}.search-results .result-name{padding-right:1em;}.search-results .result-name>span{display:inline-block;margin:0;font-weight:normal;}body.blur>:not(#help){filter:blur(8px);-webkit-filter:blur(8px);opacity:.7;}#help{width:100%;height:100vh;position:fixed;top:0;left:0;display:flex;justify-content:center;align-items:center;}#help>div{flex:0 0 auto;box-shadow:0 0 6px rgba(0,0,0,.2);width:550px;height:auto;border:1px solid;}#help dt{float:left;clear:left;display:block;margin-right:0.5rem;}#help span.top,#help span.bottom{text-align:center;display:block;font-size:1.125rem;}#help span.top{text-align:center;display:block;margin:10px 0;border-bottom:1px solid;padding-bottom:4px;margin-bottom:6px;}#help span.bottom{clear:both;border-top:1px solid;}#help dd{margin:5px 35px;}#help .infos{padding-left:0;}#help h1,#help h2{margin-top:0;}#help>div div{width:50%;float:left;padding:0 20px 20px 17px;;}.item-info .stab{display:inline-block;}.stab{padding:3px;margin-bottom:5px;font-size:0.875rem;font-weight:normal;}.stab p{display:inline;}.stab .emoji{font-size:1.25rem;}.emoji{text-shadow:1px 0 0 black,-1px 0 0 black,0 1px 0 black,0 -1px 0 black;}.module-item .stab,.import-item .stab{border-radius:3px;display:inline-block;font-size:0.875rem;line-height:1.2;margin-bottom:0;margin-left:0.3125em;padding:2px;vertical-align:text-bottom;}.module-item.unstable,.import-item.unstable{opacity:0.65;}.since{font-weight:normal;font-size:initial;}.rightside{padding-left:12px;padding-right:2px;position:initial;}.impl-items .srclink,.impl .srclink,.methods .srclink{font-weight:normal;font-size:1rem;}.rightside{float:right;}.variants_table{width:100%;}.variants_table tbody tr td:first-child{width:1%;}td.summary-column{width:100%;}.summary{padding-right:0px;}pre.rust .question-mark{font-weight:bold;}a.test-arrow{display:inline-block;visibility:hidden;position:absolute;padding:5px 10px 5px 10px;border-radius:5px;font-size:1.375rem;top:5px;right:5px;z-index:1;}.example-wrap:hover .test-arrow{visibility:visible;}a.test-arrow:hover{text-decoration:none;}.code-attribute{font-weight:300;}.item-spacer{width:100%;height:12px;}.out-of-band>span.since{position:initial;font-size:1.25rem;}h3.variant{font-weight:600;font-size:1.125rem;margin-bottom:10px;border-bottom:none;}.sub-variant h4{font-size:1rem;font-weight:400;border-bottom:none;margin-top:0;margin-bottom:0;}.sub-variant{margin-left:24px;margin-bottom:40px;}.sub-variant>.sub-variant-field{margin-left:24px;}.toggle-label{display:inline-block;margin-left:4px;margin-top:3px;}:target>code,:target>.code-header{opacity:1;}:target{padding-right:3px;}.information{position:absolute;left:-25px;margin-top:7px;z-index:1;}.tooltip{position:relative;display:inline-block;cursor:pointer;}.tooltip::after{display:none;text-align:center;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;font-size:1rem;}.tooltip.ignore::after{content:"This example is not tested";}.tooltip.compile_fail::after{content:"This example deliberately fails to compile";}.tooltip.should_panic::after{content:"This example panics";}.tooltip.edition::after{content:"This code runs with edition " attr(data-edition);}.tooltip::before{content:" ";position:absolute;top:50%;left:16px;margin-top:-5px;border-width:5px;border-style:solid;display:none;}.tooltip:hover::before,.tooltip:hover::after{display:inline;}.tooltip.compile_fail,.tooltip.should_panic,.tooltip.ignore{font-weight:bold;font-size:1.25rem;}.notable-traits-tooltip{display:inline-block;cursor:pointer;}.notable-traits:hover .notable-traits-tooltiptext,.notable-traits .notable-traits-tooltiptext.force-tooltip{display:inline-block;}.notable-traits .notable-traits-tooltiptext{display:none;padding:5px 3px 3px 3px;border-radius:6px;margin-left:5px;z-index:10;font-size:1rem;cursor:default;position:absolute;border:1px solid;}.notable-traits-tooltip::after{content:"\00a0\00a0\00a0";}.notable-traits .notable,.notable-traits .docblock{margin:0;}.notable-traits .notable{margin:0;margin-bottom:13px;font-size:1.1875rem;font-weight:600;display:block;}.notable-traits .docblock code.content{margin:0;padding:0;font-size:1.25rem;}pre.rust.rust-example-rendered{position:relative;}pre.rust{tab-size:4;-moz-tab-size:4;}.search-failed{text-align:center;margin-top:20px;display:none;}.search-failed.active{display:block;}.search-failed>ul{text-align:left;max-width:570px;margin-left:auto;margin-right:auto;}#titles{height:35px;}#titles>button{float:left;width:33.3%;text-align:center;font-size:1.125rem;cursor:pointer;border:0;border-top:2px solid;}#titles>button:first-child:last-child{margin-right:1px;width:calc(100% - 1px);}#titles>button:not(:last-child){margin-right:1px;width:calc(33.3% - 1px);}#titles>button>div.count{display:inline-block;font-size:1rem;}.notable-traits{cursor:pointer;z-index:2;margin-left:5px;}#sidebar-toggle{position:sticky;top:0;left:0;cursor:pointer;font-weight:bold;font-size:1.25rem;border-bottom:1px solid;display:flex;height:40px;justify-content:center;align-items:center;z-index:10;}#source-sidebar{width:100%;z-index:1;overflow:auto;}#source-sidebar>.title{font-size:1.5rem;text-align:center;border-bottom:1px solid;margin-bottom:6px;}.theme-picker{position:absolute;left:-38px;top:4px;}.theme-picker button{outline:none;}#settings-menu,#help-button{margin-left:4px;outline:none;}#theme-picker,#copy-path{height:34px;}#theme-picker,#settings-menu,#help-button,#copy-path{padding:5px;width:33px;border:1px solid;border-radius:2px;cursor:pointer;}@keyframes rotating{from{transform:rotate(0deg);}to{transform:rotate(360deg);}}#settings-menu.rotate img{animation:rotating 2s linear infinite;}#help-button{font-family:"Fira Sans",Arial,sans-serif;text-align:center;font-size:20px;padding-top:2px;}#copy-path{background:initial;margin-left:10px;padding:0;padding-left:2px;border:0;}#theme-choices{display:none;position:absolute;left:0;top:28px;border:1px solid;border-radius:3px;z-index:1;cursor:pointer;}#theme-choices>button{border:none;width:100%;padding:4px 8px;text-align:center;background:rgba(0,0,0,0);overflow-wrap:normal;}#theme-choices>button:not(:first-child){border-top:1px solid;}kbd{display:inline-block;padding:3px 5px;font:15px monospace;line-height:10px;vertical-align:middle;border:solid 1px;border-radius:3px;cursor:default;}.hidden-by-impl-hider,.hidden-by-usual-hider{display:none !important;}#implementations-list>h3>span.in-band{width:100%;}.table-display{width:100%;border:0;border-collapse:collapse;border-spacing:0;font-size:1rem;}.table-display tr td:first-child{padding-right:0;}.table-display tr td:last-child{float:right;}.table-display .out-of-band{position:relative;font-size:1.125rem;display:block;}.table-display td:hover .anchor{display:block;top:2px;left:-5px;}#main-content>ul{padding-left:10px;}#main-content>ul>li{list-style:none;}.non-exhaustive{margin-bottom:1em;}div.children{padding-left:27px;display:none;}div.name{cursor:pointer;position:relative;margin-left:16px;}div.files>a{display:block;padding:0 3px;}div.files>a:hover,div.name:hover{background-color:#a14b4b;}div.name.expand+.children{display:block;}div.name::before{content:"\25B6";padding-left:4px;font-size:0.625rem;position:absolute;left:-16px;top:4px;}div.name.expand::before{transform:rotate(90deg);left:-15px;top:2px;}details.rustdoc-toggle>summary.hideme{cursor:pointer;}details.rustdoc-toggle>summary{list-style:none;}details.rustdoc-toggle>summary::-webkit-details-marker,details.rustdoc-toggle>summary::marker{display:none;}details.rustdoc-toggle>summary.hideme>span{margin-left:9px;}details.rustdoc-toggle>summary::before{content:"";cursor:pointer;width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;vertical-align:middle;opacity:.5;}details.rustdoc-toggle>summary::after{content:"Expand";overflow:hidden;width:0;height:0;position:absolute;}details.rustdoc-toggle>summary.hideme::after{content:"";}details.rustdoc-toggle>summary:focus::before,details.rustdoc-toggle>summary:hover::before{opacity:1;}details.rustdoc-toggle.top-doc>summary,details.rustdoc-toggle.top-doc>summary::before,details.rustdoc-toggle.non-exhaustive>summary,details.rustdoc-toggle.non-exhaustive>summary::before{font-family:'Fira Sans';font-size:1rem;}details.non-exhaustive{margin-bottom:8px;}details.rustdoc-toggle>summary.hideme::before{position:relative;}details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;top:4px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before{position:absolute;left:-24px;}details.rustdoc-toggle[open] >summary.hideme{position:absolute;}details.rustdoc-toggle{position:relative;}details.rustdoc-toggle[open] >summary.hideme>span{display:none;}details.undocumented[open] >summary::before,details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{background-image:url("toggle-minus.svg");}details.undocumented>summary::before,details.rustdoc-toggle>summary::before{background-image:url("toggle-plus.svg");}details.rustdoc-toggle[open] >summary::before,details.rustdoc-toggle[open] >summary.hideme::before{width:16px;height:16px;background-repeat:no-repeat;background-position:top left;display:inline-block;content:"";}details.rustdoc-toggle[open] >summary::after,details.rustdoc-toggle[open] >summary.hideme::after{content:"Collapse";}@media (min-width:701px){.docblock>.information:first-child>.tooltip{margin-top:16px;}.sidebar.expanded+main .width-limiter .sub-logo-container.rust-logo{display:none;}.source .sidebar.expanded{width:300px;}}@media (max-width:700px){*[id]{scroll-margin-top:45px;}.rustdoc{padding-top:0px;display:block;}main{padding-left:15px;padding-top:0px;}.rustdoc,.main-heading{flex-direction:column;}.content .out-of-band{text-align:left;margin-left:initial;padding:initial;}.content .out-of-band .since::before{content:"Since ";}#copy-path{display:none;}.sidebar .sidebar-logo,.sidebar .location{display:none;}.sidebar-elems{margin-top:1em;}.sidebar{position:fixed;top:45px;left:-1000px;margin-left:0;background-color:rgba(0,0,0,0);margin:0;padding:0;z-index:11;height:calc(100vh - 45px);}.source main,.source .sidebar{top:0;padding:0;}.sidebar.shown,.sidebar.expanded,.sidebar:focus-within{left:0;}.rustdoc.source>.sidebar{position:fixed;margin:0;z-index:11;width:0;}.mobile-topbar .location a{padding:0;margin:0;}.mobile-topbar .location{border:none;padding:0;margin:auto 0.5em auto auto;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:24px;}.mobile-topbar .logo-container{max-height:45px;}.mobile-topbar .logo-container>img{max-width:35px;max-height:35px;margin-left:20px;margin-top:5px;margin-bottom:5px;}.mobile-topbar{display:flex;flex-direction:row;position:sticky;z-index:10;font-size:2rem;height:45px;width:100%;left:0;top:0;}.source .mobile-topbar{display:none;}.sidebar-menu-toggle{width:45px;font-size:32px;border:none;}.source nav:not(.sidebar).sub{margin-left:32px;}#theme-picker{display:none;width:0;}.content{margin-left:0px;}.source .content{margin-top:10px;}#search{margin-left:0;padding:0;}.anchor{display:none !important;}.notable-traits{position:absolute;left:-22px;top:24px;}#titles>button>div.count{float:left;width:100%;}#titles{height:50px;}#sidebar-filler{position:fixed;left:45px;width:calc(100% - 45px);top:0;height:45px;z-index:-1;border-bottom:1px solid;}#main-content>details.rustdoc-toggle>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}.sidebar.expanded #sidebar-toggle{font-size:1.5rem;}.sidebar:not(.expanded) #sidebar-toggle{position:fixed;left:1px;top:100px;width:30px;font-size:1.5rem;text-align:center;padding:0;z-index:10;border-top-right-radius:3px;border-bottom-right-radius:3px;cursor:pointer;font-weight:bold;border:1px solid;border-left:0;}#source-sidebar{z-index:11;}#main-content>.line-numbers{margin-top:0;}.notable-traits .notable-traits-tooltiptext{left:0;top:100%;}#help-button{display:none;}.item-table{display:block;}.item-row{display:flex;flex-flow:column wrap;}.item-left,.item-right{width:100%;}.search-results>a{border-bottom:1px solid #aaa9;padding:5px 0px;}.search-results .result-name,.search-results div.desc,.search-results .result-description{width:100%;}.search-results div.desc,.search-results .result-description,.item-right{padding-left:2em;}.source .sidebar.expanded{max-width:100vw;width:100vw;}details.rustdoc-toggle:not(.top-doc)>summary{margin-left:10px;}.impl-items>details.rustdoc-toggle>summary:not(.hideme)::before,#main-content>details.rustdoc-toggle:not(.top-doc)>summary::before,#main-content>div>details.rustdoc-toggle>summary::before{left:-11px;}}@media print{nav.sub,.content .out-of-band{display:none;}}@media (max-width:464px){#titles,#titles>button{height:73px;}#main-content>table:not(.table-display) td{word-break:break-word;width:50%;}#crate-search{border-radius:4px;border:0;}.docblock{margin-left:12px;}.docblock code{overflow-wrap:break-word;overflow-wrap:anywhere;}.sub-container{flex-direction:column;}.sub-logo-container{align-self:center;}.source .sub-logo-container>img{height:35px;width:35px;}.sidebar:not(.expanded) #sidebar-toggle{top:10px;}}.method-toggle summary,.implementors-toggle summary,.impl{margin-bottom:0.75em;}.method-toggle[open]{margin-bottom:2em;}.implementors-toggle[open]{margin-bottom:2em;}#trait-implementations-list .method-toggle,#synthetic-implementations-list .method-toggle,#blanket-implementations-list .method-toggle{margin-bottom:1em;}.scraped-example-list .scrape-help{margin-left:10px;padding:0 4px;font-weight:normal;font-size:12px;position:relative;bottom:1px;background:transparent;border-width:1px;border-style:solid;border-radius:50px;}.scraped-example-title{font-family:'Fira Sans';}.scraped-example .code-wrapper{position:relative;display:flex;flex-direction:row;flex-wrap:wrap;width:100%;}.scraped-example:not(.expanded) .code-wrapper{max-height:240px;}.scraped-example:not(.expanded) .code-wrapper pre{overflow-y:hidden;max-height:240px;padding-bottom:0;}.scraped-example:not(.expanded) .code-wrapper pre.line-numbers{overflow-x:hidden;}.scraped-example .code-wrapper .prev{position:absolute;top:0.25em;right:2.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .next{position:absolute;top:0.25em;right:1.25em;z-index:100;cursor:pointer;}.scraped-example .code-wrapper .expand{position:absolute;top:0.25em;right:0.25em;z-index:100;cursor:pointer;}.scraped-example:not(.expanded) .code-wrapper:before{content:" ";width:100%;height:5px;position:absolute;z-index:100;top:0;}.scraped-example:not(.expanded) .code-wrapper:after{content:" ";width:100%;height:5px;position:absolute;z-index:100;bottom:0;}.scraped-example .code-wrapper .line-numbers{margin:0;padding:14px 0;}.scraped-example .code-wrapper .line-numbers span{padding:0 14px;}.scraped-example .code-wrapper .example-wrap{flex:1;overflow-x:auto;overflow-y:hidden;margin-bottom:0;}.scraped-example:not(.expanded) .code-wrapper .example-wrap{overflow-x:hidden;}.scraped-example .code-wrapper .example-wrap pre.rust{overflow-x:inherit;width:inherit;overflow-y:hidden;}.more-examples-toggle{max-width:calc(100% + 25px);margin-top:10px;margin-left:-25px;}.more-examples-toggle .hide-more{margin-left:25px;margin-bottom:5px;cursor:pointer;}.more-examples-toggle summary,.more-examples-toggle .hide-more{font-family:'Fira Sans';}.more-scraped-examples{margin-left:5px;display:flex;flex-direction:row;}.more-scraped-examples-inner{width:calc(100% - 20px);}.toggle-line{align-self:stretch;margin-right:10px;margin-top:5px;padding:0 4px;cursor:pointer;}.toggle-line-inner{min-width:2px;height:100%;}.more-scraped-examples .scraped-example{margin-bottom:20px;}.more-scraped-examples .scraped-example:last-child{margin-bottom:0;}.example-links a{margin-top:20px;font-family:'Fira Sans';}.example-links ul{margin-bottom:0;} \ No newline at end of file diff --git a/search-index.js b/search-index.js index d0e631fa..6cfb252d 100644 --- a/search-index.js +++ b/search-index.js @@ -1,6 +1,6 @@ var searchIndex = JSON.parse('{\ -"db_core":{"doc":"mCaptcha database operations","t":[3,3,8,3,13,3,4,8,3,3,3,3,3,3,3,13,10,10,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,12,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,10,10,11,11,11,11,11,11,11,10,10,10,10,12,12,11,11,11,11,11,11,11,11,11,11,11,11,0,12,12,12,12,10,11,11,11,11,11,11,11,11,11,11,11,11,0,10,10,10,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,10,10,10,10,10,10,10,10,10,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,0,12,10,0,12,10,10,10,10,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,0,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,10,10,10,10,10,10,12,12,12,10,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,23,13,6,13,13,4,13,6,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,12,16,8,8,8,8,16,10,10,10,5],"n":["AddNotification","Captcha","CloneSPDatabase","CreateCaptcha","Email","Level","Login","MCDatabase","NameHash","Notification","Register","Secret","StatsUnixTimestamp","TrafficPattern","UpdateEmail","Username","add_captcha_levels","add_traffic_pattern","avg_traffic","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic","captcha_exists","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_db","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config_fetches","config_id","confirms","create_captcha","create_notification","default","default","default","default","default","default","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dev","difficulty_factor","duration","duration","email","email_exists","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","into","into","into","into","into","into","into","into","into","into","into","into","key","key","mark_notification_read","message","message","name","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","new_email","ops","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","secret","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","solves","tests","to","to_owned","to_owned","to_owned","to_owned","to_owned","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_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","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","async_trait","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","DBError","DBResult","EmailTaken","NotificationNotFound","SecretTaken","TrafficPatternNotFound","UsernameTaken","borrow","borrow_mut","fmt","fmt","from","into","source","to_string","try_from","try_into","type_id","vzip","0","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","database_works"],"q":["db_core","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_core::Login","","db_core::dev","db_core::errors","","","","","","","","","","","","","","","","","","","","","","","","db_core::errors::DBError","db_core::ops","","","","","","","","","db_core::tests"],"d":["Data required to add notification","Data representing a captcha","Trait to clone MCDatabase","data requried to create new captcha","email as login","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","type encapsulating username and hashed password of a user","Represents notification","Data required to register a new user","datastructure representing a user’s secret","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","data required to update them email of a user","username as login","Add levels to captcha","Add traffic configuration","average traffic of user’s website","","","","","","","","","","","","","","","","","","","","","","","","","trafic that bought the user’s website down; optional","check if captcha exists","","","","","","","","","","","","","clone DB","","","","","","","","","","","","","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","create new captcha","create new notification","","","","","","","","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","","","","","","","","","","","","useful imports for supporting a new database","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","","","","","","","","","","","","","represents all the ways a trait can fail using this crate","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","receiver name of the notification","","","","","","","","","","","","","new email address of the user","meta operations like migration and connecting to a database","the peak traffic that the user’s website can handle","ping DB","useful imports for users working with a supported database","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","","","","","","","","","","","","","times at which the PoW was solved","Test utilities","who is the notification addressed to?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","","","","","","","","","","","","","Account not found","Convenience type alias for grouping driver-specific errors","Captcha key is taken","Captcha not found","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Generic result data structure","Email is taken","Notification not found","Secret is taken","Traffic pattern not found","Username is taken","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","database connection type","Create databse connection","Database operations trait(migrations, pool creation and …","Get database connection","database migrations","database specific pool-type","database specific error-type create connection pool","database specific error-type get connection from …","database specific error-type run migrations","test all database functions"],"i":[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,2,2,3,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,3,2,4,5,1,6,7,8,9,10,3,11,12,13,14,4,5,1,6,7,8,9,10,3,11,12,13,7,12,7,2,2,7,8,9,3,11,12,13,2,2,2,2,11,12,4,5,1,6,7,8,9,10,3,11,12,13,0,10,11,12,4,2,4,5,1,6,7,8,9,10,3,11,12,13,0,2,2,2,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,9,2,2,2,2,2,2,2,2,2,4,6,8,9,8,4,5,1,6,7,8,9,10,3,11,12,13,11,12,2,8,9,8,4,5,1,6,7,8,9,10,3,11,12,13,5,0,3,2,0,8,2,2,2,2,4,13,4,5,1,6,7,8,9,10,3,11,12,13,7,0,9,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,2,2,2,2,2,2,4,5,6,2,10,4,5,1,6,7,8,9,10,3,11,12,13,15,16,0,17,0,17,17,0,17,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,19,0,0,0,0,20,20,19,21,0],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8]]]]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["register",3]],[[["",0]],["updateemail",3]],[[["",0]],["login",4]],[[["",0]],["namehash",3]],[[["",0]],["statsunixtimestamp",3]],[[["",0]],["notification",3]],[[["",0]],["addnotification",3]],[[["",0]],["level",3]],[[["",0]],["trafficpattern",3]],[[["",0]],["createcaptcha",3]],[[["",0]],["captcha",3]],[[["",0]],["secret",3]],[[["",0]],["box",3,[["mcdatabase",8]]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8]]]]]],[[],["statsunixtimestamp",3]],[[],["notification",3]],[[],["addnotification",3]],[[],["trafficpattern",3]],[[],["createcaptcha",3]],[[],["captcha",3]],[[],["secret",3]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["level",3]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["register",3]],["bool",0]],[[["",0],["updateemail",3]],["bool",0]],[[["",0],["login",4]],["bool",0]],[[["",0],["namehash",3]],["bool",0]],[[["",0],["statsunixtimestamp",3]],["bool",0]],[[["",0],["notification",3]],["bool",0]],[[["",0],["addnotification",3]],["bool",0]],[[["",0],["level",3]],["bool",0]],[[["",0],["trafficpattern",3]],["bool",0]],[[["",0],["createcaptcha",3]],["bool",0]],[[["",0],["captcha",3]],["bool",0]],[[["",0],["secret",3]],["bool",0]],null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,null,[[["",0],["register",3]],["bool",0]],[[["",0],["updateemail",3]],["bool",0]],[[["",0],["login",4]],["bool",0]],[[["",0],["namehash",3]],["bool",0]],[[["",0],["statsunixtimestamp",3]],["bool",0]],[[["",0],["notification",3]],["bool",0]],[[["",0],["addnotification",3]],["bool",0]],[[["",0],["level",3]],["bool",0]],[[["",0],["trafficpattern",3]],["bool",0]],[[["",0],["createcaptcha",3]],["bool",0]],[[["",0],["captcha",3]],["bool",0]],[[["",0],["secret",3]],["bool",0]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],null,null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["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]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,null,null,[[],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["register",3],["createcaptcha",3],["trafficpattern",3],["addnotification",3]]]],"p":[[4,"Login"],[8,"MCDatabase"],[3,"TrafficPattern"],[3,"Register"],[3,"UpdateEmail"],[3,"NameHash"],[3,"StatsUnixTimestamp"],[3,"Notification"],[3,"AddNotification"],[3,"Level"],[3,"CreateCaptcha"],[3,"Captcha"],[3,"Secret"],[8,"CloneSPDatabase"],[13,"Username"],[13,"Email"],[4,"DBError"],[13,"DBError"],[8,"GetConnection"],[8,"Connect"],[8,"Migrate"]]},\ -"db_sqlx_postgres":{"doc":"","t":[12,3,4,3,13,3,13,3,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,12,11,11,0,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,12,11,12,11,11,12,12,0,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,12,11,11,11,11,11,11,12,12,13,13,3,3,6,6,3,3,13,13,13,13,8,8,13,13,13,13,16,16,8,8,3,3,4,4,13,13,8,8,6,6,13,13,13,13,13,13,4,8,8,13,3,3,4,4,8,8,8,8,13,3,3,3,3,13,13,16,16,13,13,13,3,3,13,3,3,13,13,3,3,13,3,3,13,13,13,3,3,13,13,13,13,13,10,10,10,10,11,23,12,12,11,11,12,12,10,10,10,10,12,12,12,12,12,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,12,12,12,12,0,12,12,12,12,12,12,12,12,10,10,0,0,10,10,10,10,10,10,11,11,11,11,11,11,11,12,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,10,10,12,12,12,12,10,10,12,12,12,12,0,0,12,12,10,10,0,12,12,10,10,10,10,10,10,10,10,12,12,12,12,12,12,11,0,0,12,12,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,23,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,0,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,13,13,6,6,13,13,13,13,4,4,13,13,6,6,13,13,13,13,13,13,13,13,13,13,12,12,16,16,8,8,8,8,8,8,8,8,16,16,10,10,10,10,10,10,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,0,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,23,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,5,5,5,5,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,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,12,10,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,12,12,12,10,10,10,11,11,11,11,11,11,11,10,10,10,10,12,12,11,11,11,11,11,11,11,11,11,11,11,0,12,12,12,12,10,11,11,11,11,11,11,11,11,11,11,11,0,10,10,10,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,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,12,12,10,12,11,11,11,11,11,11,11,11,11,11,11,12,0,12,10,12,10,10,10,10,12,12,11,11,11,11,11,11,11,11,11,11,11,12,11,0,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,10,10,10,10,10,10,12,12,12,10,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,23,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,0,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,12,11,11,12,10,11,10,11,12,12,12,10,10,10,10,10,10,10,12,12,11,12,12,12,12,10,11,10,10,10,11,11,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,11,12,12,10,12,12,10,12,11,12,12,10,12,10,10,10,10,12,12,11,12,12,11,11,11,11,10,10,10,10,10,10,12,12,12,10,12,11,12,12,12,13,6,13,13,4,13,6,13,13,13,13,13,12,16,8,8,8,8,16,10,10,10,5],"n":["0","Conn","ConnectionOptions","Database","Existing","Fresh","Fresh","InnerNotification","add_captcha_levels","add_traffic_pattern","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","captcha_exists","clone","clone","clone_db","clone_into","clone_into","connect","create_captcha","create_notification","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","dev","disable_logging","email_exists","eq","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","from","from","from","from","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_password","get_secret","get_traffic_pattern","heading","id","into","into","into","into","into","mark_notification_read","message","migrate","name","ne","ping","pool","pool_options","prelude","received","record_confirm","record_fetch","record_solve","register","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_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","url","username_exists","vzip","vzip","vzip","vzip","vzip","0","0","AccountNotFound","AccountNotFound","AddNotification","AddNotification","BoxDynError","BoxDynError","Captcha","Captcha","CaptchaKeyTaken","CaptchaKeyTaken","CaptchaNotFound","CaptchaNotFound","CloneSPDatabase","CloneSPDatabase","ColumnDecode","ColumnIndexOutOfBounds","ColumnNotFound","Configuration","Conn","Conn","Connect","Connect","CreateCaptcha","CreateCaptcha","DBError","DBError","DBError","DBError","DBOps","DBOps","DBResult","DBResult","Database","Decode","Email","Email","EmailTaken","EmailTaken","Error","GetConnection","GetConnection","Io","Level","Level","Login","Login","MCDatabase","MCDatabase","Migrate","Migrate","Migrate","NameHash","NameHash","Notification","Notification","NotificationNotFound","NotificationNotFound","Pool","Pool","PoolClosed","PoolTimedOut","Protocol","Register","Register","RowNotFound","Secret","Secret","SecretTaken","SecretTaken","StatsUnixTimestamp","StatsUnixTimestamp","Tls","TrafficPattern","TrafficPattern","TrafficPatternNotFound","TrafficPatternNotFound","TypeNotFound","UpdateEmail","UpdateEmail","Username","Username","UsernameTaken","UsernameTaken","WorkerCrashed","add_captcha_levels","add_captcha_levels","add_traffic_pattern","add_traffic_pattern","as_database_error","async_trait","avg_traffic","avg_traffic","borrow","borrow_mut","broke_my_site_traffic","broke_my_site_traffic","captcha_exists","captcha_exists","clone_db","clone_db","config_fetches","config_fetches","config_id","config_id","confirms","confirms","connect","connect","create_captcha","create_captcha","create_notification","create_notification","delete_captcha","delete_captcha","delete_captcha_levels","delete_captcha_levels","delete_traffic_pattern","delete_traffic_pattern","delete_user","delete_user","description","description","description","description","dev","difficulty_factor","difficulty_factor","duration","duration","duration","duration","email","email","email_exists","email_exists","errors","errors","fetch_config_fetched","fetch_config_fetched","fetch_confirm","fetch_confirm","fetch_solve","fetch_solve","fmt","fmt","from","from","from","from","from","from","from","get_all_unread_notifications","get_all_unread_notifications","get_all_user_captchas","get_all_user_captchas","get_captcha_config","get_captcha_config","get_captcha_cooldown","get_captcha_cooldown","get_captcha_levels","get_captcha_levels","get_conn","get_conn","get_email","get_email","get_password","get_password","get_secret","get_secret","get_traffic_pattern","get_traffic_pattern","hash","hash","hash","hash","heading","heading","heading","heading","id","id","into","into_database_error","key","key","key","key","mark_notification_read","mark_notification_read","message","message","message","message","migrate","migrate","name","name","new_email","new_email","ops","ops","peak_sustainable_traffic","peak_sustainable_traffic","ping","ping","prelude","received","received","record_confirm","record_confirm","record_fetch","record_fetch","record_solve","record_solve","register","register","secret","secret","secret","secret","solves","solves","source","tests","tests","to","to","to_string","try_from","try_into","type_id","update_captcha_key","update_captcha_key","update_captcha_metadata","update_captcha_metadata","update_email","update_email","update_password","update_password","update_secret","update_secret","update_username","update_username","username","username","username","username","username","username","username_exists","username_exists","visitor_threshold","visitor_threshold","vzip","0","0","0","0","0","0","0","0","0","0","index","index","len","source","type_name","0","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","async_trait","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","AccountNotFound","AccountNotFound","BoxDynError","BoxDynError","CaptchaKeyTaken","CaptchaKeyTaken","CaptchaNotFound","CaptchaNotFound","DBError","DBError","DBError","DBError","DBResult","DBResult","EmailTaken","EmailTaken","NotificationNotFound","NotificationNotFound","SecretTaken","SecretTaken","TrafficPatternNotFound","TrafficPatternNotFound","UsernameTaken","UsernameTaken","0","0","Conn","Conn","Connect","Connect","DBOps","DBOps","GetConnection","GetConnection","Migrate","Migrate","Pool","Pool","connect","connect","get_conn","get_conn","migrate","migrate","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","dev","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","async_trait","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","database_works","database_works","map_register_err","map_row_not_found_err","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","avg_traffic","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic","captcha_exists","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_db","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config_fetches","config_id","confirms","connect","create_captcha","create_notification","default","default","default","default","default","default","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dev","difficulty_factor","duration","duration","email","email_exists","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","into","into","into","into","into","into","into","into","into","into","into","into","key","key","mark_notification_read","message","message","migrate","name","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","new_email","ops","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","solves","source","tests","to","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","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","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","async_trait","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","avg_traffic","borrow","borrow_mut","broke_my_site_traffic","captcha_exists","clone","clone_db","clone_into","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","deserialize","difficulty_factor","duration","duration","email","email_exists","eq","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","from","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","into","key","key","mark_notification_read","message","message","migrate","name","ne","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","serialize","solves","to","to_owned","try_from","try_into","type_id","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","vzip","0","0","0","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","DBError","DBResult","EmailTaken","NotificationNotFound","SecretTaken","TrafficPatternNotFound","UsernameTaken","0","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","database_works"],"q":["db_sqlx_postgres","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::ConnectionOptions","","db_sqlx_postgres::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::DBError","","db_sqlx_postgres::dev::Error","","","","","","","","","","","","","db_sqlx_postgres::dev::Login","","","","db_sqlx_postgres::dev::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::dev::DBError","db_sqlx_postgres::dev::dev::Login","","db_sqlx_postgres::dev::dev::prelude","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::dev::prelude::DBError","db_sqlx_postgres::dev::dev::prelude::Login","","db_sqlx_postgres::dev::errors","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::errors::DBError","","db_sqlx_postgres::dev::ops","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::prelude","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::prelude::DBError","db_sqlx_postgres::dev::prelude::Login","","db_sqlx_postgres::dev::prelude::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::prelude::dev::DBError","db_sqlx_postgres::dev::prelude::dev::Login","","db_sqlx_postgres::dev::tests","","db_sqlx_postgres::errors","","db_sqlx_postgres::prelude","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::prelude::DBError","db_sqlx_postgres::prelude::Login","","db_sqlx_postgres::prelude::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::prelude::dev::DBError","db_sqlx_postgres::prelude::dev::Login","","db_sqlx_postgres::prelude::dev::prelude","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::prelude::dev::prelude::DBError","db_sqlx_postgres::prelude::dev::prelude::Login","","db_sqlx_postgres::prelude::errors","","","","","","","","","","","","db_sqlx_postgres::prelude::errors::DBError","db_sqlx_postgres::prelude::ops","","","","","","","","","db_sqlx_postgres::prelude::tests"],"d":["","Use an existing database pool","Connect to databse","","existing connection","","fresh connection","Represents notification","Add levels to captcha","Add traffic configuration","","","","","","","","","","","check if captcha exists","","","","","","","create new captcha","create new notification","","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","","","check if email exists","","Error-handling utilities","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","get user email","get a user’s password","get a user’s secret","Get traffic configuration","heading of the notification","db assigned ID of the notification","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","mark a notification read","message of the notification","","receiver name of the notification","","ping DB","","","","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","","check if username exists","","","","","","","","Account not found","Account not found","Data required to add notification","Data required to add notification","Convenience type alias for grouping driver-specific errors","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Data representing a captcha","Captcha key is taken","Captcha key is taken","Captcha not found","Captcha not found","Trait to clone MCDatabase","Trait to clone MCDatabase","Error occurred while decoding a value from a specific …","Column index was out of bounds.","No column found for the given name.","Error occurred while parsing a connection string.","database connection type","database connection type","Create databse connection","Create databse connection","data requried to create new captcha","data requried to create new captcha","Error data structure grouping various error subtypes","Error data structure grouping various error subtypes","errors that are specific to a database implementation","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Database operations trait(migrations, pool creation and …","Generic result data structure","Generic result data structure","Error returned from the database.","Error occurred while decoding a value.","email as login","email as login","Email is taken","Email is taken","Represents all the ways a method can fail within SQLx.","Get database connection","Get database connection","Error communicating with the database backend.","Level struct that describes threshold-difficulty factor …","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","mCaptcha’s database requirements. To implement support …","database migrations","database migrations","","type encapsulating username and hashed password of a user","type encapsulating username and hashed password of a user","Represents notification","Represents notification","Notification not found","Notification not found","database specific pool-type","database specific pool-type","Pool::close was called while we were waiting in …","A Pool::acquire timed out due to connections not becoming …","Unexpected or invalid data encountered while communicating …","Data required to register a new user","Data required to register a new user","No rows returned by a query that expected to return at …","datastructure representing a user’s secret","datastructure representing a user’s secret","Secret is taken","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","Captcha statistics with time recorded in UNIX epoch formats","Error occurred while attempting to establish a TLS …","User’s traffic pattern; used in generating a captcha …","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","Traffic pattern not found","Type in query doesn’t exist. Likely due to typo or …","data required to update them email of a user","data required to update them email of a user","username as login","username as login","Username is taken","Username is taken","A background worker has crashed.","Add levels to captcha","Add levels to captcha","Add traffic configuration","Add traffic configuration","","","average traffic of user’s website","average traffic of user’s website","","","trafic that bought the user’s website down; optional","trafic that bought the user’s website down; optional","check if captcha exists","check if captcha exists","clone DB","clone DB","times at which the configuration were fetched","times at which the configuration were fetched","Database assigned ID","Database assigned ID","times at which the PoW token was verified","times at which the PoW token was verified","database specific error-type create connection pool","database specific error-type create connection pool","create new captcha","create new captcha","create new notification","create new notification","Delete captcha","Delete captcha","Delete all levels of a captcha","Delete all levels of a captcha","Delete traffic configuration","Delete traffic configuration","delete a user","delete a user","description of the captcha","description of the captcha","description of the captcha","description of the captcha","useful imports for supporting a new database","","","cool down duration","cool down duration","cool down duration","cool down duration","Optionally, email of new use","Optionally, email of new use","check if email exists","check if email exists","represents all the ways a trait can fail using this crate","represents all the ways a trait can fail using this crate","featch PoWConfig fetches","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig confirms","featch PoWConfig solves","featch PoWConfig solves","","","","","","","Returns the argument unchanged.","notification sender","notification sender","get all unread notifications","get all unread notifications","Get all captchas belonging to user","Get all captchas belonging to user","Get captcha config","Get captcha config","Get captcha’s cooldown period","Get captcha’s cooldown period","Get captcha levels","Get captcha levels","database specific error-type get connection from …","database specific error-type get connection from …","get user email","get user email","get a user’s password","get a user’s password","get a user’s secret","get a user’s secret","Get traffic configuration","Get traffic configuration","hashed password of new use","hashed password of new use","hashed password","hashed password","heading of the notification","heading of the notification","heading of the notification","heading of the notification","db assigned ID of the notification","db assigned ID of the notification","Calls U::from(self).","","secret key of the captcha","secret key of the captcha","secret key of the captcha","secret key of the captcha","mark a notification read","mark a notification read","message of the notification","message of the notification","mesage of the notification","mesage of the notification","database specific error-type run migrations","database specific error-type run migrations","receiver name of the notification","receiver name of the notification","new email address of the user","new email address of the user","meta operations like migration and connecting to a database","meta operations like migration and connecting to a database","the peak traffic that the user’s website can handle","the peak traffic that the user’s website can handle","ping DB","ping DB","useful imports for users working with a supported database","when notification was received","when notification was received","record PoWConfig confirms","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig fetches","record PoWConfig solves","record PoWConfig solves","register a new user","register a new user","secret of new user","secret of new user","user’s secret","user’s secret","times at which the PoW was solved","times at which the PoW was solved","","Test utilities","Test utilities","who is the notification addressed to?","who is the notification addressed to?","","","","","update captcha key; doesn’t change metadata","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update captcha metadata; doesn’t change captcha key","update a user’s email","update a user’s email","update user’s password","update user’s password","update a user’s secret","update a user’s secret","update username","update username","username of new user","username of new user","username of the user","username of the user","username","username","check if username exists","check if username exists","","","","","","","","","","","","","","","","","","","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","useful imports for users working with a supported database","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","Account not found","Account not found","Convenience type alias for grouping driver-specific errors","Convenience type alias for grouping driver-specific errors","Captcha key is taken","Captcha key is taken","Captcha not found","Captcha not found","Error data structure grouping various error subtypes","Error data structure grouping various error subtypes","errors that are specific to a database implementation","errors that are specific to a database implementation","Generic result data structure","Generic result data structure","Email is taken","Email is taken","Notification not found","Notification not found","Secret is taken","Secret is taken","Traffic pattern not found","Traffic pattern not found","Username is taken","Username is taken","","","database connection type","database connection type","Create databse connection","Create databse connection","Database operations trait(migrations, pool creation and …","Database operations trait(migrations, pool creation and …","Get database connection","Get database connection","database migrations","database migrations","database specific pool-type","database specific pool-type","database specific error-type create connection pool","database specific error-type create connection pool","database specific error-type get connection from …","database specific error-type get connection from …","database specific error-type run migrations","database specific error-type run migrations","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","useful imports for supporting a new database","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","test all database functions","test all database functions","map postgres errors to DBError types","map custom row not found error to DB error","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","average traffic of user’s website","","","","","","","","","","","","","","","","","","","","","","","","","trafic that bought the user’s website down; optional","check if captcha exists","","","","","","","","","","","","clone DB","","","","","","","","","","","","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","","","","","","","","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","","","","","","","","","","","useful imports for supporting a new database","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","","","","","","","","","","","","represents all the ways a trait can fail using this crate","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","","","","","","","","","","","","new email address of the user","meta operations like migration and connecting to a database","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","","","","","","","","","","","","times at which the PoW was solved","","Test utilities","who is the notification addressed to?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","","","","","","","","","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","useful imports for users working with a supported database","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","average traffic of user’s website","","","trafic that bought the user’s website down; optional","check if captcha exists","","clone DB","","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","Returns the argument unchanged.","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","Calls U::from(self).","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","","new email address of the user","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","","times at which the PoW was solved","who is the notification addressed to?","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","","Account not found","Convenience type alias for grouping driver-specific errors","Captcha key is taken","Captcha not found","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Generic result data structure","Email is taken","Notification not found","Secret is taken","Traffic pattern not found","Username is taken","","database connection type","Create databse connection","Database operations trait(migrations, pool creation and …","Get database connection","database migrations","database specific pool-type","database specific error-type create connection pool","database specific error-type get connection from …","database specific error-type run migrations","test all database functions"],"i":[1,0,0,0,2,0,2,0,3,3,1,2,4,3,5,1,2,4,3,5,3,3,5,3,3,5,2,3,3,5,3,3,3,3,0,4,3,5,0,3,3,3,5,1,2,4,3,5,3,3,3,3,3,3,3,3,3,5,5,1,2,4,3,5,3,5,3,5,5,3,3,4,0,5,3,3,3,3,3,5,1,2,4,3,5,1,2,4,3,5,1,2,4,3,5,3,3,3,3,3,3,4,3,1,2,4,3,5,6,7,8,8,0,0,0,0,0,0,8,8,8,8,0,0,9,9,9,9,10,10,0,0,0,0,0,0,8,8,0,0,0,0,9,9,11,11,8,8,0,0,0,9,0,0,0,0,0,0,0,0,9,0,0,0,0,8,8,12,12,9,9,9,0,0,9,0,0,8,8,0,0,9,0,0,8,8,9,0,0,11,11,8,8,9,13,13,13,13,9,0,14,14,9,9,14,14,13,13,15,15,16,16,17,17,16,16,12,12,13,13,13,13,13,13,13,13,13,13,13,13,18,18,17,17,0,19,19,18,18,17,17,20,20,13,13,0,0,13,13,13,13,13,13,9,9,9,9,9,9,9,21,21,13,13,13,13,13,13,13,13,13,13,10,10,13,13,13,13,13,13,13,13,20,20,22,22,23,23,21,21,23,23,9,9,18,18,17,17,13,13,23,23,21,21,24,24,23,23,25,25,0,0,14,14,13,13,0,23,23,13,13,13,13,13,13,13,13,20,20,26,26,16,16,9,0,0,21,21,9,9,9,9,13,13,13,13,13,13,13,13,13,13,13,13,20,20,25,25,22,22,13,13,19,19,9,27,27,28,29,30,31,32,33,34,35,36,37,36,37,38,39,39,40,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,0,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,0,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,8,8,0,0,8,8,8,8,0,0,8,8,0,0,8,8,8,8,8,8,8,8,8,8,27,27,10,10,0,0,0,0,0,0,0,0,12,12,12,12,10,10,24,24,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,0,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,0,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,0,0,0,0,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,14,8,20,25,11,22,16,23,21,14,18,17,26,8,20,25,11,22,16,23,21,14,18,17,26,14,13,20,25,11,22,16,23,21,14,18,17,26,15,20,25,11,22,16,23,21,14,18,17,26,16,17,16,12,13,13,16,23,21,14,18,17,26,13,13,13,13,18,17,20,25,11,22,16,23,21,14,18,17,26,0,19,18,17,20,13,20,25,11,22,16,23,21,14,18,17,26,0,13,13,13,8,8,20,25,11,22,16,23,21,14,18,17,26,8,20,25,11,22,16,23,23,21,14,18,17,26,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,8,20,25,11,22,16,23,21,14,18,17,26,18,17,13,23,21,24,23,20,25,11,22,16,23,21,14,18,17,26,25,0,14,13,23,13,13,13,13,20,26,20,25,11,22,16,23,21,14,18,17,26,16,8,0,21,20,25,11,22,16,23,21,14,18,17,26,8,8,20,25,11,22,16,23,21,14,18,17,26,8,20,25,11,22,16,23,21,14,18,17,26,8,20,25,11,22,16,23,21,14,18,17,26,13,13,13,13,13,13,20,25,22,13,19,8,20,25,11,22,16,23,21,14,18,17,26,27,39,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,0,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,0,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,14,19,19,14,13,19,15,19,16,17,16,12,13,13,13,13,13,13,18,17,19,19,18,17,20,13,19,13,13,13,19,19,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,19,18,17,13,23,21,24,23,19,25,14,13,23,13,13,13,13,20,26,19,16,21,19,19,19,19,13,13,13,13,13,13,20,25,22,13,19,19,27,39,40,8,0,8,8,0,8,0,8,8,8,8,8,27,10,0,0,0,0,12,12,10,24,0],"f":[null,null,null,null,null,null,null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["database",3]],[[["",0]],["innernotification",3]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],[[["",0],["",0]]],[[["",0],["",0]]],[[],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8]]]]]],[[],["innernotification",3]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["innernotification",3]],["bool",0]],null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[]],[[]],[[]],[[]],[[]],[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8]]]]]],null,[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],null,[[["",0],["innernotification",3]],["bool",0]],[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[]],[[]],[[]],[[]],[[]],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,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,null,null,null,null,null,null,null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["option",4,[["databaseerror",8]]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["error",3]],["error",4]],[[["migrateerror",4]],["error",4]],[[],["error",4]],[[["invaliddnsnameerror",3]],["error",4]],[[]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,null,null,null,[[]],[[],["option",4,[["box",3,[["databaseerror",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0]],["option",4,[["error",8]]]],null,null,null,null,[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["register",3],["createcaptcha",3],["trafficpattern",3],["addnotification",3]]],[[["",0],["register",3],["createcaptcha",3],["trafficpattern",3],["addnotification",3]]],[[["error",4]],["dberror",4]],[[["error",4],["dberror",4]],["dberror",4]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["register",3]],[[["",0]],["updateemail",3]],[[["",0]],["login",4]],[[["",0]],["namehash",3]],[[["",0]],["statsunixtimestamp",3]],[[["",0]],["notification",3]],[[["",0]],["addnotification",3]],[[["",0]],["trafficpattern",3]],[[["",0]],["createcaptcha",3]],[[["",0]],["captcha",3]],[[["",0]],["secret",3]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[],["statsunixtimestamp",3]],[[],["notification",3]],[[],["addnotification",3]],[[],["trafficpattern",3]],[[],["createcaptcha",3]],[[],["captcha",3]],[[],["secret",3]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[],["result",4,[["register",3]]]],[[],["result",4,[["updateemail",3]]]],[[],["result",4,[["login",4]]]],[[],["result",4,[["namehash",3]]]],[[],["result",4,[["statsunixtimestamp",3]]]],[[],["result",4,[["notification",3]]]],[[],["result",4,[["addnotification",3]]]],[[],["result",4,[["trafficpattern",3]]]],[[],["result",4,[["createcaptcha",3]]]],[[],["result",4,[["captcha",3]]]],[[],["result",4,[["secret",3]]]],null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["bool",0]],[[["",0],["updateemail",3]],["bool",0]],[[["",0],["login",4]],["bool",0]],[[["",0],["namehash",3]],["bool",0]],[[["",0],["statsunixtimestamp",3]],["bool",0]],[[["",0],["notification",3]],["bool",0]],[[["",0],["addnotification",3]],["bool",0]],[[["",0],["trafficpattern",3]],["bool",0]],[[["",0],["createcaptcha",3]],["bool",0]],[[["",0],["captcha",3]],["bool",0]],[[["",0],["secret",3]],["bool",0]],null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["innernotification",3]]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["register",3]],["bool",0]],[[["",0],["updateemail",3]],["bool",0]],[[["",0],["login",4]],["bool",0]],[[["",0],["namehash",3]],["bool",0]],[[["",0],["statsunixtimestamp",3]],["bool",0]],[[["",0],["notification",3]],["bool",0]],[[["",0],["addnotification",3]],["bool",0]],[[["",0],["trafficpattern",3]],["bool",0]],[[["",0],["createcaptcha",3]],["bool",0]],[[["",0],["captcha",3]],["bool",0]],[[["",0],["secret",3]],["bool",0]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],null,[[["",0]],["option",4,[["error",8]]]],null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["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]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["level",3]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],[[["",0],["",0]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[],["result",4,[["level",3]]]],null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["level",3]],["bool",0]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,[[]],null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["level",3]],["bool",0]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["result",4]],null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3],["createcaptcha",3],["trafficpattern",3],["addnotification",3]]]],"p":[[3,"Conn"],[4,"ConnectionOptions"],[3,"Database"],[3,"Fresh"],[3,"InnerNotification"],[13,"Fresh"],[13,"Existing"],[4,"DBError"],[4,"Error"],[8,"GetConnection"],[4,"Login"],[8,"Connect"],[8,"MCDatabase"],[3,"TrafficPattern"],[8,"CloneSPDatabase"],[3,"StatsUnixTimestamp"],[3,"Captcha"],[3,"CreateCaptcha"],[3,"Level"],[3,"Register"],[3,"AddNotification"],[3,"NameHash"],[3,"Notification"],[8,"Migrate"],[3,"UpdateEmail"],[3,"Secret"],[13,"DBError"],[13,"Configuration"],[13,"Database"],[13,"Io"],[13,"Tls"],[13,"Protocol"],[13,"ColumnNotFound"],[13,"Decode"],[13,"Migrate"],[13,"ColumnIndexOutOfBounds"],[13,"ColumnDecode"],[13,"TypeNotFound"],[13,"Username"],[13,"Email"]]},\ -"mcaptcha":{"doc":"","t":[6,6,3,17,17,3,3,17,3,3,3,3,17,3,3,3,3,3,3,3,17,17,17,17,3,3,3,3,17,3,3,17,17,12,12,12,12,12,12,12,12,12,12,12,12,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,12,12,0,12,0,12,12,0,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,12,5,0,12,0,12,0,12,12,12,0,0,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,0,0,3,0,0,11,11,11,11,5,11,0,0,0,0,12,0,5,11,11,11,11,3,3,11,11,11,11,11,11,11,11,0,11,11,0,12,11,11,11,11,11,11,0,0,0,11,11,5,11,11,11,11,11,11,11,11,0,12,11,11,11,11,3,11,11,11,0,5,11,11,11,11,5,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,3,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,12,12,12,11,11,5,11,11,11,11,11,11,11,11,11,11,5,3,11,11,11,3,11,11,12,12,11,12,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,11,11,3,11,11,11,11,5,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,0,11,5,3,11,11,11,11,11,11,11,11,11,11,12,3,11,11,11,5,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,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,0,0,5,0,5,0,0,3,3,11,11,11,11,11,11,11,11,3,12,11,11,12,11,11,11,11,11,11,11,12,12,12,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,3,11,11,11,11,11,11,3,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,12,5,11,11,11,11,3,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,0,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,3,11,11,12,11,11,11,11,11,11,12,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,3,11,11,12,12,12,11,12,11,11,12,11,11,11,12,12,11,3,11,11,11,11,11,11,11,11,11,11,3,11,11,12,11,0,11,11,11,11,11,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,11,3,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,12,12,11,11,0,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,5,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,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,12,12,12,12,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,11,11,11,11,11,12,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,12,11,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,12,11,11,3,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,11,12,11,11,14,12,11,11,11,11,12,11,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,11,12,11,12,12,11,11,11,11,3,13,6,13,4,11,11,11,11,11,12,12,12,14,14,11,11,11,11,11,11,11,12,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,12,12,17,3,17,17,17,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,17,17,3,11,11,11,11,11,12,11,11,11,11,11,11,11,11,3,17,17,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,5,3,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,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,12,13,13,13,13,13,13,3,13,3,13,13,13,13,4,6,13,13,13,13,4,13,6,3,13,13,13,13,13,13,13,11,11,11,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,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,17,0,0,5,0,0,5,0,0,0,0,5,0,3,3,17,12,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,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,12,12,11,11,11,11,11,17,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,11,17,3,3,17,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,12,11,11,11,11,0,5,12,11,11,11,11,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,0,3,11,11,11,0,5,0,0,12,11,11,11,11,11,11,11,11,11,3,3,17,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,12,11,3,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,12,11,11,12,12,12,11,11,11,11,3,17,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,0,12,5,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,3,11,11,12,11,11,12,11,11,11,11,11,12,11,0,0,0,0,0,5,0,3,3,3,3,17,12,12,3,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,3,12,12,12,12,12,11,11,11,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,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,3,3,17,3,11,11,11,11,11,11,11,11,11,11,11,11,12,3,12,11,11,11,11,11,11,11,11,12,12,12,12,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,3,17,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,3,12,12,11,11,12,12,12,11,11,11,11,11,11,11,12,11,11,11,11,12,11,3,17,11,11,11,11,11,11,12,11,11,11,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,11,3,11,11,17,3,12,12,11,11,12,12,11,11,11,12,11,11,12,12,12,12,12,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,12,11,11,11,5,3,3,3,3,3,3,3,3,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,12,11,11,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,11,12,12,11,12,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,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,0,5,0,3,11,11,12,11,11,11,11,11,11,11,11,3,3,0,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,3,3,3,3,3,3,6,3,3,3,3,12,12,12,12,12,12,12,12,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,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,11,11,11,11,11,11,11,11,11,11,11,3,8,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,10,12,12,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,10,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,17,17,12,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","ArcData","BAR_CHART","CACHE_AGE","COMPILED_DATE","CREDIT_CARD","CSS","DOCS","DOCS_ICON","Data","FILES","GITHUB","GIT_COMMIT_HASH","HELP_CIRCLE","HOME","JS","KEY","MCAPTCHA_TRANS_ICON","MESSAGE","MOBILE_CSS","PAGES","PKG_DESCRIPTION","PKG_HOMEPAGE","PKG_NAME","SETTINGS","SETTINGS_ICON","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","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","allow_demo","allow_registration","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","captcha","commercial","creds","data","database","date","db","debug","demo","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","into","into","into","into","into","into","into","into","mailer","main","pages","redis","routes","server","settings","settings","smtp","source_code","static_assets","stats","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","RedirectQuery","account","auth","borrow","borrow_mut","deserialize","from","get_middleware","into","mcaptcha","meta","notifications","pow","redirect_to","routes","services","try_from","try_into","type_id","vzip","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","password","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","runners","services","try_from","try_into","type_id","vzip","delete_user","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","ChangePasswordReqest","UpdatePassword","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","confirm_new_password","confirm_new_password","deserialize","fmt","from","from","from","from","into","into","into","new_password","new_password","password","register","serialize","services","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_password_runner","update_user_password","vzip","vzip","vzip","Account","borrow","borrow_mut","delete","email_exists","from","get_secret","into","new","try_from","try_into","type_id","update_email","update_password","update_secret","update_username","username_exists","vzip","borrow","borrow","borrow_mut","borrow_mut","from","from","get_secret","into","into","register","register","services","try_from","try_from","try_into","try_into","type_id","type_id","update_user_secret","vzip","vzip","Username","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deserialize","fmt","from","from","from","into","into","into","register","register","runners","serialize","services","set_username","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","username","username_exists","vzip","vzip","vzip","username_exists","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","get_login_route","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","create","delete","easy","get","get_random","routes","services","stats","update","CreateCaptcha","MCaptchaDetails","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","create","description","deserialize","deserialize","duration","fmt","from","from","from","into","into","into","key","levels","name","register","runner","serialize","serialize","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","create","DeleteCaptcha","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","delete","deserialize","fmt","from","from","into","into","key","password","register","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","TrafficPatternRequest","UpdateTrafficPattern","avg_traffic","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic","calculate","clone","clone","clone_into","clone_into","create","default","description","deserialize","deserialize","fmt","fmt","from","from","from","from","into","into","into","into","key","pattern","peak_sustainable_traffic","register","register","routes","serialize","serialize","services","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","update","vzip","vzip","vzip","vzip","Easy","borrow","borrow_mut","create","from","into","new","try_from","try_into","type_id","update","vzip","I32Levels","Levels","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","difficulty_factor","fmt","fmt","from","from","from","get_captcha","into","into","into","levels","register","serialize","serialize","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","visitor_threshold","vzip","vzip","vzip","Captcha","borrow","borrow_mut","create","delete","easy","from","get","into","new","stats","try_from","try_into","type_id","update","update_key","vzip","StatsPayload","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deserialize","fmt","from","from","get","into","into","key","register","routes","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Stats","borrow","borrow_mut","from","get","into","new","try_from","try_into","type_id","vzip","UpdateCaptcha","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","description","deserialize","duration","from","from","from","into","into","into","key","levels","register","register","runner","serialize","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_captcha","update_key","vzip","vzip","vzip","update_captcha","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","create_empty","create_empty","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","0","0","0","0","Meta","borrow","borrow_mut","build_details","from","health","into","new","try_from","try_into","type_id","vzip","add","get","mark_read","routes","services","AddNotificationRequest","add_notification","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","deserialize","eq","fmt","from","from","heading","into","into","message","ne","register","serialize","to","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","NotificationResp","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","deserialize","eq","from","from","from","from_notifications","get_notification","heading","id","into","into","message","name","ne","received","register","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","MarkReadReq","borrow","borrow","borrow_mut","borrow_mut","deserialize","from","from","id","into","into","mark_read","register","serialize","try_from","try_from","try_into","try_into","type_id","type_id","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","get_config","into","new","rm_scope","scope","try_from","try_into","type_id","validate_captcha_token","validate_captcha_token","verify_pow","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","captcha","from","get_login_route","into","meta","new","notifications","pow","try_from","try_into","type_id","vzip","Data","Embedded","Mailer","Redis","SystemGroup","add_site","borrow","borrow","borrow_mut","borrow_mut","captcha","creds","db","enum_system_actor","enum_system_wrapper","from","from","get_creds","get_mailer","get_pow","into","into","mailer","new","new","new_system","remove","rename","settings","stats","try_from","try_from","try_into","try_into","type_id","type_id","validate_verification_tokens","verify_pow","vzip","vzip","0","0","DAY","Date","HOUR","MINUTE","WEEK","borrow","borrow_mut","clone","clone_into","date","fmt","format","from","into","new","print_date","time","to_owned","try_from","try_into","type_id","vzip","DEMO_PASSWORD","DEMO_USER","DemoUser","abort","borrow","borrow_mut","delete_demo_user","from","handle","into","register_demo_user","run","spawn","try_from","try_into","type_id","vzip","Asset","DOCS","OPEN_API_SPEC","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","dist","from","from","from","from","get","get","handle_embedded_file","index","into","into","into","into","iter","iter","register","register","register","routes","services","spec","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","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","0","AccountNotFound","BlacklistError","CaptchaError","CaptchaNotFound","ClosedForRegistration","DBError","DBErrorWrapper","EmailTaken","ErrorToResponse","InternalServerError","InternalServerError","NotAUrl","NotAnEmail","PageError","PageResult","PasswordTooLong","PasswordTooShort","PasswordsDontMatch","ProfainityError","ServiceError","ServiceError","ServiceResult","SmtpErrorWrapper","TokenNotFound","TrafficPatternNotFound","UnableToSendEmail","UsernameCaseMappedError","UsernameNotFound","UsernameTaken","WrongPassword","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deserialize","eq","eq","eq","eq","error","error_response","error_response","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","ne","ne","serialize","source","source","source","source","status_code","status_code","to_string","to_string","to_string","to_string","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","vzip","vzip","vzip","vzip","vzip","0","0","0","0","NAME","auth","errors","get_middleware","panel","routes","services","sitemap","login","register","routes","services","sudo","INDEX","IndexPage","PAGE","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","from","from","from","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","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","get_login_route","get_sitemap","into","join","login","new","try_from","try_into","type_id","vzip","PAGE","SudoPage","borrow","borrow_mut","clone","clone_into","data","from","into","new","render_once","render_once_to","to_owned","try_from","try_into","type_id","url","vzip","ERROR_ROUTE","ErrorPage","INTERNAL_SERVER_ERROR_BODY","PAGE","UNKNOWN_ERROR_BODY","__private_field","__private_field","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deref","deref","error","from","from","from","from","into","into","into","into","message","new","register","render_once","render_once_to","routes","services","title","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","vzip","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","notifications","panel","register","render_once","render_once_to","routes","services","settings","sitekey","sitekeys","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","IndexPage","Notification","PAGE","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","from","from","from","from","heading","id","into","into","into","message","n","name","new","notifications","print_date","received","register","render_once","render_once_to","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Panel","borrow","borrow_mut","from","get_sitemap","home","into","new","notifications","settings","sitekey","try_from","try_into","type_id","vzip","IndexPage","PAGE","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","delete_account","email","from","from","from","from","into","into","into","into","register","register","register","render_once","render_once_to","routes","secret","services","settings","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","update_secret","username","vzip","vzip","vzip","vzip","Settings","borrow","borrow_mut","delete_account","from","get_sitemap","home","into","new","try_from","try_into","type_id","update_secret","vzip","add","delete","edit","list","routes","services","view","ADVANCE_INDEX","AdvanceIndexPage","EASY_INDEX","EasyIndexPage","PAGE","__private_field","__private_field","advance","avg_traffic","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic","clone","clone","clone_into","clone_into","default","default","deref","deref","easy","form_description","form_description","form_duration","form_title","form_title","from","from","from","from","from","from","into","into","into","into","into","into","levels","peak_sustainable_traffic","register","register","render_once","render_once","render_once_to","render_once_to","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","borrow","borrow_mut","delete_sitekey","from","into","register","try_from","try_into","type_id","vzip","AdvanceEditPage","EasyEditPage","PAGE","advance","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","duration","easy","form_title","from","from","from","from","into","into","into","into","key","key","levels","name","new","new","pattern","register","register","render_once","render_once","render_once_to","render_once_to","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","vzip","vzip","vzip","vzip","IndexPage","PAGE","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","from","from","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_advance","add_easy","borrow","borrow_mut","delete","edit_advance","edit_easy","from","get_delete","get_edit_advance","get_edit_easy","get_sitemap","get_view","into","list","new","try_from","try_into","type_id","view","vzip","IndexPage","PAGE","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","duration","from","from","into","into","key","levels","name","new","register","render_once","render_once_to","stats","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","view_sitekey","vzip","vzip","ROUTES","Routes","about","auth","borrow","borrow_mut","donate","errors","from","get_login_route","get_sitemap","home","into","new","panel","privacy","security","sitemap","thanks","try_from","try_into","type_id","vzip","INDEX","IndexPage","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","domain","from","from","from","into","into","into","register","render_once","render_once_to","sitemap","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","urls","vzip","vzip","vzip","services","Captcha","Database","DatabaseBuilder","DefaultDifficultyStrategy","Redis","Server","Settings","Smtp","allow_demo","allow_registration","avg_traffic_difficulty","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic_difficulty","captcha","check_url","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commercial","cookie_secret","database","debug","default_difficulty_strategy","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","domain","duration","enable_stats","extract_database_url","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","gc","get_ip","hostname","into","into","into","into","into","into","into","into","ip","name","new","password","password","peak_sustainable_traffic_difficulty","pool","pool","port","port","port","proxy_has_tls","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","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","url","url","url","url_prefix","username","username","vzip","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","assets","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","BAR_CHART","CREDIT_CARD","DOCS_ICON","GITHUB","HELP_CIRCLE","HOME","Img","KEY","MCAPTCHA_TRANS_ICON","MESSAGE","SETTINGS_ICON","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","try_from","try_from","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","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CaptchaStats","CloneStats","Dummy","Real","Stats","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","clone_stats","config_fetches","confirms","default","default","default","deserialize","eq","eq","eq","fetch","fetch","fetch","fmt","fmt","fmt","from","from","from","into","into","into","ne","record_confirm","record_confirm","record_confirm","record_fetch","record_fetch","record_fetch","record_solve","record_solve","record_solve","serialize","solves","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","INDEX_PAGE","IndexPage","PAGE","WIDGET_ROUTES","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deref","from","from","from","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::delete::runners","mcaptcha::api::v1::account::email","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::password","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::routes","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::secret","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::username","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::username::runners","mcaptcha::api::v1::auth","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::auth::routes","","","","","","","","","","","","","","mcaptcha::api::v1::auth::runners","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha","","","","","","","","","mcaptcha::api::v1::mcaptcha::create","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::create::runner","mcaptcha::api::v1::mcaptcha::delete","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::easy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::easy::routes","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::get","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::routes","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::stats","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::stats::routes","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::update","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::update::runner","mcaptcha::api::v1::meta","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::meta::BuildDetailsBuilderError","","mcaptcha::api::v1::meta::HealthBuilderError","","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::data::SystemGroup","","mcaptcha::date","","","","","","","","","","","","","","","","","","","","","","mcaptcha::demo","","","","","","","","","","","","","","","","","mcaptcha::docs","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::docs::routes","","","","","","","","","","","","","mcaptcha::email","mcaptcha::email::verification","","","","","","","","","","","","","","","","","","mcaptcha::errors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::errors::PageError","mcaptcha::errors::ServiceError","","","mcaptcha::pages","","","","","","","","mcaptcha::pages::auth","","","","","mcaptcha::pages::auth::login","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::auth::register","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::auth::routes","","","","","","","","","","","","","","mcaptcha::pages::auth::sudo","","","","","","","","","","","","","","","","","","mcaptcha::pages::errors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::errors::routes","","","","","","","","","","","","mcaptcha::pages::panel","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::notifications","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::routes","","","","","","","","","","","","","","","mcaptcha::pages::panel::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::settings::routes","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey","","","","","","","mcaptcha::pages::panel::sitekey::add","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::delete","","","","","","","","","","mcaptcha::pages::panel::sitekey::edit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::list","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::routes","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::view","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::routes","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::sitemap","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::routes","mcaptcha::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::static_assets","","","mcaptcha::static_assets::filemap","","","","","","","","","","","","mcaptcha::static_assets::static_files","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::static_assets::static_files::assets","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::stats","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","database ops defined by db crates","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","email client","","","","","","","app settings","","","","","stats recorder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","User facing CAPTCHA widget","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","update email","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","update username","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","returns Ok(()) when everything checks out and the user is …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","User’s traffic pattern; used in generating a captcha …","","average traffic of user’s website","","","","","","","","","trafic that bought the user’s website down; optional","","","","","","","","Captcha description","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","the peak traffic that the user’s website can handle","","","","","","","","","","","","","","","","","","","","","","","","","","","","","easy is using defaults","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Builder for BuildDetails.","Error type for BuildDetailsBuilder","Health check return datatype","Builder for Health.","Error type for HealthBuilder","Uninitialized field","Uninitialized field","Custom validation error","Custom validation error","","","","","","","","","","","","","","","","","Builds a new BuildDetails.","Builds a new Health.","emmits build details of the bninary","","","","","","","","","Create an empty builder, with all fields set to None or …","Create an empty builder, with all fields set to None or …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","","Returns the argument unchanged.","","","","checks all components of the system","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","route handler that adds a notification message","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","route handler that gets all unread notifications","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","route handler that marks a notification read","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","PoW Verification module","PoW success token module","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","get PoW configuration for an mcaptcha key","Call this when MCaptcha is not in master.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","remove scope for $name route","","Calls U::from(self).","","","","","","","remove scope for $name route","","remove scope for $name route","","","validation token that clients receive as proof for …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","route handler that verifies PoW and issues a solution token","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","route hander that validates a PoW solution token","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","App data","","Mailer data type AsyncSmtpTransport","","Represents mCaptcha cache and master system. When Redis is …","","","","","","mCaptcha system: Redis cache, etc.","credential management configuration","database ops defined by db crates","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","email client","","create new instance of app data","","","","app settings","stats recorder","","","","","","","","","","","","","","","","","","","","","","print date","","","Returns the argument unchanged.","Calls U::from(self).","","print relative time from date","","","","","","","Demo password","Demo username","","","","","","Returns the argument unchanged.","","Calls U::from(self).","register demo user runner","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Get an embedded file and its metadata.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Iterates over the file paths in the folder.","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","Email operations: verification, notification, etc","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","when the value passed contains blacklisted words see …","","captcha not found","","","","email is already taken","","","","","","","","","","","when the value passed contains profainity","","","","","token not found","Traffic pattern not found","Unable to send email","when the value passed contains characters not present in …","","when the a username is already taken","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","notifications","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","route handler that renders individual views for sitekeys","","","","","","","","","","","","","","route handler that renders individual views for sitekeys","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","render a list of all sitekeys that a user has","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","route handler that renders individual views for sitekeys","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get an embedded file and its metadata.","","Get an embedded file and its metadata.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","Iterates over the file paths in the folder.","","Iterates over the file paths in the folder.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to clone MCDatabase","","","","","","","","","","","","","","","","clone DB","","","","","","","","","","fetch stats","fetch stats","fetch stats","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","record PoWConfig confirms","record PoWConfig confirms","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig fetches","record PoWConfig fetches","record PoWConfig solves","record PoWConfig solves","record PoWConfig solves","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","widget services","render a client side widget for CAPTCHA verification","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,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,9,10,11,12,13,14,15,16,17,18,19,19,0,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,20,19,19,20,0,19,0,20,19,0,11,12,13,14,15,16,17,18,0,0,0,11,12,13,14,15,16,17,18,0,0,11,12,13,14,15,16,17,18,20,0,0,19,0,19,0,20,19,19,0,0,20,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,0,0,0,0,0,21,21,21,21,0,21,0,0,0,0,21,0,0,21,21,21,21,0,0,22,23,22,23,22,23,22,23,0,22,23,0,23,22,23,22,23,22,23,0,0,0,22,23,0,22,23,22,23,22,23,22,23,0,22,22,23,24,24,0,24,24,24,0,0,24,24,24,24,0,0,25,26,27,25,26,27,25,25,25,25,0,25,25,26,27,25,26,27,26,27,25,0,0,25,25,26,27,25,26,27,25,26,27,25,26,27,0,0,28,29,30,28,29,30,29,29,28,29,29,29,28,28,29,30,28,29,30,28,29,29,30,29,0,29,28,29,30,28,29,30,28,29,30,0,0,28,29,30,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,33,32,33,32,33,0,32,33,32,33,0,32,33,32,33,32,33,0,32,33,0,34,35,36,34,35,36,35,35,35,35,34,35,36,34,35,36,34,36,0,35,0,0,35,34,35,36,34,35,36,34,35,36,35,0,34,35,36,0,37,38,39,37,38,39,37,38,39,37,38,39,0,0,37,38,39,0,0,0,0,37,38,39,37,38,39,37,38,39,37,38,39,0,40,40,40,40,40,40,40,40,40,40,40,40,40,0,0,0,41,42,43,41,42,43,41,42,43,41,42,43,41,41,42,43,41,41,42,43,41,42,43,41,42,43,42,0,41,42,43,0,41,42,43,41,42,43,41,42,43,41,42,43,41,42,43,41,41,42,43,0,0,0,0,0,0,0,0,0,0,0,44,45,46,44,45,46,45,45,0,44,44,45,44,45,44,45,46,44,45,46,45,44,45,46,0,44,45,45,44,45,46,44,45,46,44,45,46,44,45,46,0,0,47,48,47,48,47,47,0,47,47,47,48,47,48,47,47,48,47,47,47,48,47,48,47,48,47,48,0,0,49,49,50,51,52,49,50,51,52,49,0,49,51,49,51,0,49,49,49,51,49,51,49,50,51,52,49,50,51,52,51,51,49,50,52,0,49,51,0,49,51,49,50,51,52,49,50,51,52,49,50,51,52,0,49,50,51,52,0,53,53,53,53,53,53,53,53,53,53,53,0,0,54,55,56,54,55,56,55,56,55,56,55,56,56,55,56,54,55,56,0,54,55,56,55,54,55,56,55,56,54,55,56,54,55,56,54,55,56,56,54,55,56,0,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,0,58,59,58,59,58,58,58,58,58,59,0,58,59,58,59,0,58,58,58,59,58,59,58,59,58,59,0,60,60,60,60,60,60,60,60,60,60,0,61,62,63,61,62,63,62,62,62,61,62,63,61,62,63,62,62,61,63,0,62,61,62,63,61,62,63,61,62,63,0,0,61,62,63,0,0,0,0,0,0,0,64,65,64,65,66,67,64,68,69,70,65,71,66,67,64,68,69,70,65,71,67,70,0,66,67,69,70,66,67,69,70,67,70,70,69,70,67,70,66,69,66,64,64,69,65,65,66,67,64,64,64,68,69,70,65,65,65,71,67,66,67,0,66,67,64,68,69,70,65,71,69,70,69,70,68,71,0,66,69,0,66,67,69,70,64,65,66,67,64,68,69,70,65,71,66,67,64,68,69,70,65,71,66,67,64,68,69,70,65,71,67,66,67,66,67,64,68,69,70,65,71,72,73,74,75,0,76,76,76,76,76,76,76,76,76,76,76,0,0,0,0,0,0,0,77,78,77,78,77,77,77,77,77,77,77,78,77,77,78,77,77,78,77,77,77,77,78,77,78,77,78,77,78,0,79,80,79,80,79,79,79,79,79,79,79,80,79,0,79,79,79,80,79,79,79,79,80,79,79,79,80,79,80,79,80,79,80,0,81,82,81,82,81,81,82,81,81,82,0,82,81,81,82,81,82,81,82,81,82,0,83,83,83,83,83,83,83,83,83,83,83,83,0,0,0,0,0,0,84,85,84,85,84,84,84,84,84,85,0,0,84,85,84,85,84,84,84,85,84,85,84,85,84,85,0,86,86,86,86,86,86,86,0,86,86,86,86,86,86,86,86,86,0,87,88,87,88,87,87,87,87,87,88,87,88,88,87,87,87,87,88,87,88,87,88,0,87,88,0,89,90,89,90,89,89,89,89,89,90,89,90,90,89,89,89,90,89,90,89,90,89,0,89,90,0,0,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,0,92,0,92,0,92,92,20,92,20,20,20,20,0,0,92,20,20,20,92,92,20,20,92,20,92,92,92,20,20,92,20,92,20,92,20,92,92,92,20,93,94,0,0,0,0,0,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,0,0,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,0,0,97,98,99,100,97,98,99,100,0,97,98,99,100,97,97,0,0,97,98,99,100,97,97,98,99,100,0,0,0,97,98,99,100,97,98,99,100,97,98,99,100,97,98,99,100,0,101,101,101,101,101,101,101,101,101,101,101,101,0,0,0,102,102,102,102,102,102,102,102,102,102,102,102,102,0,102,102,103,104,105,105,105,105,105,105,0,105,0,105,106,105,105,0,0,105,105,105,105,0,106,0,0,105,105,105,105,105,105,105,103,104,105,107,106,103,104,105,107,106,107,103,104,105,106,107,105,106,103,103,104,104,105,105,106,106,103,104,105,105,105,105,105,105,105,105,105,107,106,106,106,103,104,105,107,106,105,106,107,103,104,105,106,105,106,103,104,105,106,103,104,105,107,106,103,104,105,107,106,103,104,105,107,106,103,104,105,107,106,108,109,110,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,113,112,114,113,112,114,113,113,113,112,113,112,114,113,112,114,0,114,113,113,113,113,112,114,113,112,114,113,112,114,113,112,114,0,0,0,115,116,115,117,116,115,117,116,116,116,115,116,115,117,116,115,117,0,117,116,116,116,116,115,117,116,115,117,116,115,117,116,115,117,0,118,118,118,118,118,118,118,118,118,118,118,118,118,0,0,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,0,0,0,0,0,120,121,122,120,121,123,122,120,121,123,122,122,120,121,0,122,120,121,123,122,120,121,123,122,122,123,122,122,0,0,122,122,122,120,121,123,122,120,121,123,122,120,121,123,122,120,121,123,0,124,124,124,124,124,124,124,124,124,124,124,0,0,125,126,125,126,125,125,125,126,125,126,125,0,0,126,125,125,0,0,0,0,125,125,125,126,125,126,125,126,125,126,0,0,0,127,128,129,127,128,129,127,127,128,129,127,127,127,128,129,127,128,127,128,0,127,127,129,128,128,127,128,129,127,128,129,127,128,129,127,128,129,0,130,130,130,130,130,130,130,130,130,130,130,130,130,130,0,0,131,132,133,134,131,132,133,134,131,131,0,131,131,132,133,134,131,132,133,134,132,133,134,131,131,0,131,0,0,131,131,132,133,134,131,132,133,134,131,132,133,134,0,131,131,132,133,134,0,135,135,135,135,135,135,135,135,135,135,135,135,135,0,0,0,0,0,0,0,0,0,0,0,0,136,137,0,138,136,137,139,140,138,141,136,137,139,140,138,141,138,139,138,139,138,139,138,136,137,0,139,138,139,139,138,136,137,139,140,138,141,136,137,139,140,138,141,139,138,140,141,139,138,139,138,139,138,136,137,139,140,138,141,136,137,139,140,138,141,136,137,139,140,138,141,136,137,139,140,138,141,142,142,0,142,142,142,142,142,142,142,0,0,0,0,143,144,145,146,143,144,145,146,143,145,143,145,143,0,145,143,144,145,146,143,144,145,146,143,145,143,143,143,145,145,144,146,143,145,143,145,143,145,143,144,145,146,143,144,145,146,143,144,145,146,143,144,145,146,0,0,147,148,147,148,147,147,147,148,147,148,0,147,148,147,147,147,147,147,148,147,148,147,148,147,148,0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,0,0,150,151,150,151,150,150,150,150,151,150,151,150,150,150,150,151,150,150,150,150,150,151,150,151,150,151,0,150,151,0,0,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,0,0,153,154,153,155,154,153,155,154,154,154,153,154,154,153,155,154,153,155,155,154,154,0,154,154,153,155,154,153,155,154,153,155,154,154,153,155,0,0,0,0,0,0,0,0,0,19,19,156,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,156,19,0,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,19,157,19,19,158,157,158,156,159,160,161,162,19,157,156,158,160,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,159,158,157,160,157,158,156,159,160,161,162,19,157,160,19,159,160,156,161,162,157,159,160,157,19,159,158,19,0,0,19,19,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,159,161,162,157,159,160,157,158,156,159,160,161,162,19,0,0,0,0,163,163,163,163,163,163,163,163,163,163,163,0,0,0,164,165,166,167,164,165,166,167,0,164,165,166,167,164,164,166,166,0,0,164,165,166,167,164,164,166,166,165,167,0,164,165,166,167,164,165,166,167,164,165,166,167,164,165,166,167,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,0,0,0,0,0,168,169,170,168,169,170,168,169,170,168,169,170,171,168,168,168,169,170,168,168,169,170,172,169,170,168,169,170,168,169,170,168,169,170,168,172,169,170,172,169,170,172,169,170,168,168,168,169,170,168,169,170,168,169,170,168,169,170,168,169,170,0,0,0,0,173,174,173,175,174,173,175,174,174,173,174,173,175,174,173,175,174,175,174,174,0,0,0,174,174,173,175,174,173,175,174,173,175,174,173,175,0,176,176,176,176,176,176,176,176,176,176],"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,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["settings",3]],[[["",0]],["filemap",3]],[[["",0]],["str",0]],[[["",0]],["str",0]],[[["",0]],["str",0]],[[["",0]],["str",0]],[[["",0]],["str",0]],[[["",0]],["string",3]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["settings",3]],["identityservice",3,[["cookieidentitypolicy",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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[],["result",4]],[[]],[[],["authentication",3,[["routes",3]]]],[[]],null,null,null,null,null,null,[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["accountcheckpayload",3]],[[["",0]],["accountcheckresp",3]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[],["result",4]],[[],["result",4]],null,null,[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,null,null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[["appservice",3]]],null,[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[["str",0],["appdata",6]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["email",3]],[[["",0],["",0]]],[[],["result",4]],null,null,[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],[[["",0]],["result",4]],[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["changepasswordreqest",3]],[[["",0],["",0]]],null,null,[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[["changepasswordreqest",3]]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[["appservice",3]]],[[["",0]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["str",0],["updatepassword",3],["data",3]]],null,[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[]],null,[[]],[[],["account",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,null,null,null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],null,[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["username",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],null,[[["",0]],["result",4]],[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],[[]],[[["accountcheckpayload",3],["appdata",6]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[]],[[]],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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0],["option",4,[["str",0]]]],["string",3]],[[]],null,null,[[],["auth",3]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["register",3]],[[["",0]],["login",3]],[[["",0]],["password",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["login",3],["appdata",6]]],null,null,null,[[["register",3],["appdata",6]]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],null,null,null,null,[[["usize",0]],["string",3]],null,[[["serviceconfig",3]]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["mcaptchadetails",3]],[[["",0],["",0]]],null,null,[[],["result",4]],[[],["result",4]],null,[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[["appservice",3]]],null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[["createcaptcha",3],["appdata",6],["str",0]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["deletecaptcha",3]],[[["",0],["",0]]],null,[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,null,[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["trafficpattern",3],["defaultdifficultystrategy",3]],["result",4,[["vec",3,[["level",3]]],["serviceerror",4]]]],[[["",0]],["trafficpatternrequest",3]],[[["",0]],["updatetrafficpattern",3]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[],["trafficpatternrequest",3]],null,[[],["result",4]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[["appservice",3]]],[[["appservice",3]]],null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["levels",3]],[[["",0]],["i32levels",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[],["result",4]],[[],["result",4]],null,[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],null,[[]],[[]],[[]],null,[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,null,[[]],null,[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["statspayload",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[]],null,[[["appservice",3]]],null,[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[],["result",4]],null,[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["appservice",3]]],[[["appservice",3]]],null,[[["",0]],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],[[]],[[["updatecaptcha",3],["appdata",6],["str",0]]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["result",4,[["builddetails",3],["builddetailsbuildererror",4]]]],[[["",0]],["result",4,[["health",3],["healthbuildererror",4]]]],null,[[["",0]],["builddetails",3]],[[["",0]],["builddetailsbuilder",3]],[[["",0]],["health",3]],[[["",0]],["healthbuilder",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[]],[[]],[[["",0],["bool",0]],["",0]],null,null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[["string",3]]],[[["uninitializedfielderror",3]]],[[]],[[]],[[]],[[["string",3]]],[[]],[[["uninitializedfielderror",3]]],[[]],[[["",0],["str",0]],["",0]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["option",4]],["bool",0]],[[["",0],["option",4,[["bool",0]]]],["",0]],null,null,[[["appservice",3]]],[[["appservice",3]]],null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["string",3]],[[["",0]],["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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["str",0]],["",0]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,[[["serviceconfig",3]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["addnotificationrequest",3]],[[["",0],["",0]]],[[],["addnotificationrequest",3]],[[],["result",4]],[[["",0],["addnotificationrequest",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[]],null,[[["",0],["addnotificationrequest",3]],["bool",0]],[[["appservice",3]]],[[["",0]],["result",4]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["notificationresp",3]],[[["",0],["",0]]],[[],["notificationresp",3]],[[],["result",4]],[[["",0],["notificationresp",3]],["bool",0]],[[["notification",3]]],[[]],[[]],[[["vec",3,[["notification",3]]]],["vec",3]],null,null,null,[[]],[[]],null,null,[[["",0],["notificationresp",3]],["bool",0]],null,[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[],["result",4]],[[]],[[]],null,[[]],[[]],null,[[["appservice",3]]],[[["",0]],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],null,[[],["notifications",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["serviceconfig",3]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["getconfigpayload",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,[[["appdata",6],["str",0]]],[[]],[[]],null,[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0]],["str",0]],null,[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["str",0]],null,[[["",0]],["str",0]],null,[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["validationtoken",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["captchavalidateresp",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[["",0],["option",4,[["str",0]]]],["string",3]],[[]],null,[[],["routes",3]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,[[["",0],["addsite",3]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,null,null,null,[[]],[[]],[[],["config",3]],[[["settings",3]],["option",4,[["asyncsmtptransport",3,[["tokio1executor",3]]]]]],[[["",0],["string",3]]],[[]],[[]],null,[[["settings",3]]],[[["settings",3]]],[[["settings",3],["addr",3,[["mastertrait",8]]],["addr",3,[["save",8]]]],["system",3,[["save",8],["mastertrait",8]]]],[[["",0],["removecaptcha",3]]],[[["",0],["rename",3]]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["verifycaptcharesult",3]]],[[["",0],["work",3]]],[[]],[[]],null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["date",3]],[[["",0],["",0]]],[[["",0]],["string",3]],[[["",0],["formatter",3]],["result",6]],[[["offsetdatetime",3]],["string",3]],[[]],[[]],[[["i64",0]]],[[["",0]],["string",3]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["appdata",6]]],[[]],null,[[]],[[["appdata",6]]],[[["appdata",6],["duration",3]]],[[["appdata",6],["duration",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[]],[[]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["httpresponse",3]],null,[[]],[[]],[[]],[[]],[[],["filenames",4]],[[]],[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],null,[[["serviceconfig",3]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[]],[[["str",0]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["data",3],["str",0],["str",0]]],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,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[],["result",4]],[[["",0],["",0]],["bool",0]],[[["",0],["",0]],["bool",0]],[[["",0],["serviceerror",4]],["bool",0]],[[["",0],["pageerror",4]],["bool",0]],null,[[["",0]],["httpresponse",3]],[[["",0]],["httpresponse",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["dberror",4]],["serviceerror",4]],[[["validationerrors",3]],["serviceerror",4]],[[["credserror",4]],["serviceerror",4]],[[["mailboxerror",4]]],[[["parseerror",4]],["serviceerror",4]],[[["captchaerror",4]],["serviceerror",4]],[[]],[[["smtperror",3]]],[[["recverror",3]]],[[]],[[["dberror",4]]],[[]],[[["serviceerror",4]]],[[]],[[]],[[]],[[]],[[]],[[["",0],["serviceerror",4]],["bool",0]],[[["",0],["pageerror",4]],["bool",0]],[[["",0]],["result",4]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["statuscode",3]],[[["",0]],["statuscode",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,[[],["authentication",3,[["routes",3]]]],null,null,[[["serviceconfig",3]]],null,null,null,null,[[["serviceconfig",3]]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[["",0]],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[["",0]],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0],["option",4,[["str",0]]]],["string",3]],[[]],[[]],null,null,[[],["auth",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["sudopage",3]],[[["",0],["",0]]],null,[[]],[[]],[[["str",0],["option",4,[["vec",3]]]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["errorpage",3]],[[["",0],["",0]]],[[["",0]],["string",3]],[[["",0]],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["str",0],["str",0]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[]],[[]],[[]],[[["vec",3,[["captcha",3]]]]],null,null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["serviceconfig",3]]],null,null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["notification",3]]],[[]],[[]],null,null,[[]],[[]],[[]],null,null,null,[[["vec",3,[["notification",3]]]]],null,[[["",0]],["string",3]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],null,[[]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,null,[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,null,null,null,[[["serviceconfig",3]]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["advanceindexpage",3]],[[["",0]],["easyindexpage",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[]],[[]],[[["",0]],["string",3]],[[["",0]],["string",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["appservice",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[["appservice",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["advanceeditpage",3]],[[["",0]],["easyeditpage",3]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,[[["captcha",3],["vec",3,[["level",3]]],["string",3]]],[[["string",3],["trafficpatternrequest",3]]],null,[[["appservice",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[]],[[]],[[]],null,[[["vec",3,[["captcha",3]]]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,null,[[]],[[["",0],["str",0]],["string",3]],[[["",0],["str",0]],["string",3]],[[["",0],["str",0]],["string",3]],[[]],[[["",0],["str",0]],["string",3]],[[]],null,[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],null,[[]],[[]],[[]],[[]],null,null,null,[[["captchastats",3],["captcha",3],["vec",3,[["level",3]]],["string",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[]],[[["",0],["option",4,[["str",0]]]],["string",3]],[[]],null,[[]],[[],["routes",3]],null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[["",0]],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],[[["serviceconfig",3]]],null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[["config",3]]],[[["",0]],["server",3]],[[["",0]],["captcha",3]],[[["",0]],["defaultdifficultystrategy",3]],[[["",0]],["smtp",3]],[[["",0]],["databasebuilder",3]],[[["",0]],["database",3]],[[["",0]],["redis",3]],[[["",0]],["settings",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,null,null,[[["url",3]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0]],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["result",4,[["configerror",4]]]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["config",3]]],[[["config",3],["databasebuilder",3]]],null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["serviceconfig",3]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[["",0],["str",0]],["option",4,[["str",0]]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[]],[[]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["httpresponse",3]],[[["str",0]],["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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["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]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["captchastats",3]],[[["",0]],["real",3]],[[["",0]],["dummy",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]],["box",3,[["stats",8]]]],null,null,[[],["captchastats",3]],[[],["real",3]],[[],["dummy",3]],[[],["result",4]],[[["",0],["captchastats",3]],["bool",0]],[[["",0],["real",3]],["bool",0]],[[["",0],["dummy",3]],["bool",0]],[[["",0],["data",3],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["captchastats",3]],["bool",0]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["result",4]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[["",0]],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]]],"p":[[3,"KEY"],[3,"GITHUB"],[3,"HOME"],[3,"SETTINGS_ICON"],[3,"CREDIT_CARD"],[3,"HELP_CIRCLE"],[3,"MESSAGE"],[3,"DOCS_ICON"],[3,"MCAPTCHA_TRANS_ICON"],[3,"BAR_CHART"],[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,"Settings"],[3,"Data"],[3,"RedirectQuery"],[3,"AccountCheckPayload"],[3,"AccountCheckResp"],[3,"delete_account"],[3,"Email"],[3,"email_exists"],[3,"set_email"],[3,"UpdatePassword"],[3,"ChangePasswordReqest"],[3,"update_user_password"],[3,"Account"],[3,"get_secret"],[3,"update_user_secret"],[3,"username_exists"],[3,"Username"],[3,"set_username"],[3,"register"],[3,"login"],[3,"signout"],[3,"Auth"],[3,"Register"],[3,"Login"],[3,"Password"],[3,"CreateCaptcha"],[3,"MCaptchaDetails"],[3,"create"],[3,"DeleteCaptcha"],[3,"delete"],[3,"TrafficPatternRequest"],[3,"create"],[3,"UpdateTrafficPattern"],[3,"update"],[3,"Easy"],[3,"get_captcha"],[3,"Levels"],[3,"I32Levels"],[3,"Captcha"],[3,"StatsPayload"],[3,"get"],[3,"Stats"],[3,"update_key"],[3,"UpdateCaptcha"],[3,"update_captcha"],[4,"BuildDetailsBuilderError"],[4,"HealthBuilderError"],[3,"BuildDetails"],[3,"BuildDetailsBuilder"],[3,"build_details"],[3,"Health"],[3,"HealthBuilder"],[3,"health"],[13,"UninitializedField"],[13,"ValidationError"],[13,"UninitializedField"],[13,"ValidationError"],[3,"Meta"],[3,"AddNotificationRequest"],[3,"add_notification"],[3,"NotificationResp"],[3,"get_notification"],[3,"MarkReadReq"],[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"],[13,"Embedded"],[13,"Redis"],[3,"Date"],[3,"DemoUser"],[3,"Asset"],[3,"dist"],[3,"spec"],[3,"index"],[3,"Docs"],[3,"IndexPage"],[3,"SmtpErrorWrapper"],[3,"DBErrorWrapper"],[4,"ServiceError"],[4,"PageError"],[3,"ErrorToResponse"],[13,"ServiceError"],[13,"UnableToSendEmail"],[13,"CaptchaError"],[13,"DBError"],[3,"INDEX"],[3,"IndexPage"],[3,"login"],[3,"INDEX"],[3,"IndexPage"],[3,"join"],[3,"Auth"],[3,"SudoPage"],[3,"INTERNAL_SERVER_ERROR_BODY"],[3,"UNKNOWN_ERROR_BODY"],[3,"ErrorPage"],[3,"error"],[3,"Errors"],[3,"IndexPage"],[3,"panel"],[3,"Notification"],[3,"IndexPage"],[3,"notifications"],[3,"Panel"],[3,"IndexPage"],[3,"settings"],[3,"delete_account"],[3,"update_secret"],[3,"Settings"],[3,"ADVANCE_INDEX"],[3,"EASY_INDEX"],[3,"EasyIndexPage"],[3,"AdvanceIndexPage"],[3,"advance"],[3,"easy"],[3,"delete_sitekey"],[3,"AdvanceEditPage"],[3,"advance"],[3,"EasyEditPage"],[3,"easy"],[3,"IndexPage"],[3,"list_sitekeys"],[3,"Sitekey"],[3,"IndexPage"],[3,"view_sitekey"],[3,"Routes"],[3,"INDEX"],[3,"IndexPage"],[3,"sitemap"],[3,"DefaultDifficultyStrategy"],[3,"Server"],[3,"Captcha"],[3,"Smtp"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Redis"],[3,"FileMap"],[3,"Asset"],[3,"static_files"],[3,"Favicons"],[3,"favicons"],[3,"CaptchaStats"],[3,"Real"],[3,"Dummy"],[8,"CloneStats"],[8,"Stats"],[3,"INDEX_PAGE"],[3,"IndexPage"],[3,"show_widget"],[3,"Widget"]]}\ +"db_core":{"doc":"mCaptcha database operations","t":[3,3,8,3,13,2,3,4,8,3,3,3,3,3,3,3,13,10,10,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,12,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,10,10,11,11,11,11,11,11,11,10,10,10,10,12,12,11,11,11,11,11,11,11,11,11,11,11,11,0,12,12,12,12,10,11,11,11,11,11,11,11,11,11,11,11,11,0,10,10,10,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,10,10,10,10,10,10,10,10,10,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,0,12,10,0,12,10,10,10,10,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,0,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,10,10,10,10,10,10,12,12,12,10,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,23,13,6,13,13,4,13,6,13,13,13,13,13,11,11,11,11,11,11,11,11,11,11,11,11,12,16,8,8,8,8,16,10,10,10,5],"n":["AddNotification","Captcha","CloneSPDatabase","CreateCaptcha","Email","GetConnection","Level","Login","MCDatabase","NameHash","Notification","Register","Secret","StatsUnixTimestamp","TrafficPattern","UpdateEmail","Username","add_captcha_levels","add_traffic_pattern","avg_traffic","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic","captcha_exists","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_db","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config_fetches","config_id","confirms","create_captcha","create_notification","default","default","default","default","default","default","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dev","difficulty_factor","duration","duration","email","email_exists","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","into","into","into","into","into","into","into","into","into","into","into","into","key","key","mark_notification_read","message","message","name","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","new_email","ops","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","secret","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","solves","tests","to","to_owned","to_owned","to_owned","to_owned","to_owned","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_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","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","async_trait","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","DBError","DBResult","EmailTaken","NotificationNotFound","SecretTaken","TrafficPatternNotFound","UsernameTaken","borrow","borrow_mut","fmt","fmt","from","into","source","to_string","try_from","try_into","type_id","vzip","0","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","database_works"],"q":["db_core","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_core::Login","","db_core::dev","db_core::errors","","","","","","","","","","","","","","","","","","","","","","","","db_core::errors::DBError","db_core::ops","","","","","","","","","db_core::tests"],"d":["Data required to add notification","Data representing a captcha","Trait to clone MCDatabase","data requried to create new captcha","email as login","","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","type encapsulating username and hashed password of a user","Represents notification","Data required to register a new user","datastructure representing a user’s secret","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","data required to update them email of a user","username as login","Add levels to captcha","Add traffic configuration","average traffic of user’s website","","","","","","","","","","","","","","","","","","","","","","","","","trafic that bought the user’s website down; optional","check if captcha exists","","","","","","","","","","","","","clone DB","","","","","","","","","","","","","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","create new captcha","create new notification","","","","","","","","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","","","","","","","","","","","","useful imports for supporting a new database","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","","","","","","","","","","","","","represents all the ways a trait can fail using this crate","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","receiver name of the notification","","","","","","","","","","","","","new email address of the user","meta operations like migration and connecting to a database","the peak traffic that the user’s website can handle","ping DB","useful imports for users working with a supported database","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","","","","","","","","","","","","","times at which the PoW was solved","Test utilities","who is the notification addressed to?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","","","","","","","","","","","","","Account not found","Convenience type alias for grouping driver-specific errors","Captcha key is taken","Captcha not found","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Generic result data structure","Email is taken","Notification not found","Secret is taken","Traffic pattern not found","Username is taken","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","database connection type","Create databse connection","Database operations trait(migrations, pool creation and …","Get database connection","database migrations","database specific pool-type","database specific error-type create connection pool","database specific error-type get connection from …","database specific error-type run migrations","test all database functions"],"i":[0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,2,2,3,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,3,2,4,5,1,6,7,8,9,10,3,11,12,13,14,4,5,1,6,7,8,9,10,3,11,12,13,7,12,7,2,2,7,8,9,3,11,12,13,2,2,2,2,11,12,4,5,1,6,7,8,9,10,3,11,12,13,0,10,11,12,4,2,4,5,1,6,7,8,9,10,3,11,12,13,0,2,2,2,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,9,2,2,2,2,2,2,2,2,2,4,6,8,9,8,4,5,1,6,7,8,9,10,3,11,12,13,11,12,2,8,9,8,4,5,1,6,7,8,9,10,3,11,12,13,5,0,3,2,0,8,2,2,2,2,4,13,4,5,1,6,7,8,9,10,3,11,12,13,7,0,9,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,4,5,1,6,7,8,9,10,3,11,12,13,2,2,2,2,2,2,4,5,6,2,10,4,5,1,6,7,8,9,10,3,11,12,13,15,16,0,17,0,17,17,0,17,0,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,17,18,19,0,0,0,0,20,20,19,21,0],"f":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8]]]]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["register",3]],[[["",0]],["updateemail",3]],[[["",0]],["login",4]],[[["",0]],["namehash",3]],[[["",0]],["statsunixtimestamp",3]],[[["",0]],["notification",3]],[[["",0]],["addnotification",3]],[[["",0]],["level",3]],[[["",0]],["trafficpattern",3]],[[["",0]],["createcaptcha",3]],[[["",0]],["captcha",3]],[[["",0]],["secret",3]],[[["",0]],["box",3,[["mcdatabase",8]]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8]]]]]],[[],["statsunixtimestamp",3]],[[],["notification",3]],[[],["addnotification",3]],[[],["trafficpattern",3]],[[],["createcaptcha",3]],[[],["captcha",3]],[[],["secret",3]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4,[["level",3]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["register",3]],["bool",0]],[[["",0],["updateemail",3]],["bool",0]],[[["",0],["login",4]],["bool",0]],[[["",0],["namehash",3]],["bool",0]],[[["",0],["statsunixtimestamp",3]],["bool",0]],[[["",0],["notification",3]],["bool",0]],[[["",0],["addnotification",3]],["bool",0]],[[["",0],["level",3]],["bool",0]],[[["",0],["trafficpattern",3]],["bool",0]],[[["",0],["createcaptcha",3]],["bool",0]],[[["",0],["captcha",3]],["bool",0]],[[["",0],["secret",3]],["bool",0]],null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,null,[[["",0],["register",3]],["bool",0]],[[["",0],["updateemail",3]],["bool",0]],[[["",0],["login",4]],["bool",0]],[[["",0],["namehash",3]],["bool",0]],[[["",0],["statsunixtimestamp",3]],["bool",0]],[[["",0],["notification",3]],["bool",0]],[[["",0],["addnotification",3]],["bool",0]],[[["",0],["level",3]],["bool",0]],[[["",0],["trafficpattern",3]],["bool",0]],[[["",0],["createcaptcha",3]],["bool",0]],[[["",0],["captcha",3]],["bool",0]],[[["",0],["secret",3]],["bool",0]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],null,null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["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]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,null,null,[[],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["register",3],["createcaptcha",3],["trafficpattern",3],["addnotification",3]]]],"p":[[4,"Login"],[8,"MCDatabase"],[3,"TrafficPattern"],[3,"Register"],[3,"UpdateEmail"],[3,"NameHash"],[3,"StatsUnixTimestamp"],[3,"Notification"],[3,"AddNotification"],[3,"Level"],[3,"CreateCaptcha"],[3,"Captcha"],[3,"Secret"],[8,"CloneSPDatabase"],[13,"Username"],[13,"Email"],[4,"DBError"],[13,"DBError"],[8,"GetConnection"],[8,"Connect"],[8,"Migrate"]]},\ +"db_sqlx_postgres":{"doc":"","t":[12,3,4,3,13,3,13,3,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,12,11,11,0,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,12,11,12,11,11,12,12,0,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,12,11,11,11,11,11,11,12,12,13,13,3,3,6,6,3,3,13,13,13,13,8,8,13,13,13,13,16,16,8,8,3,3,4,4,13,13,8,8,6,6,2,13,13,13,13,13,13,4,8,8,13,3,3,4,4,8,8,8,8,13,3,3,3,3,13,13,16,16,13,13,13,3,3,13,3,3,13,13,3,3,13,3,3,13,13,13,3,3,13,13,13,13,13,10,10,10,10,11,23,12,12,11,11,12,12,10,10,10,10,12,12,12,12,12,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,12,12,12,12,0,12,12,12,12,12,12,12,12,10,10,0,0,10,10,10,10,10,10,11,11,11,11,11,11,11,12,12,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,12,12,12,11,11,12,12,12,12,10,10,12,12,12,12,10,10,12,12,12,12,0,0,12,12,10,10,0,12,12,10,10,10,10,10,10,10,10,12,12,12,12,12,12,11,0,0,12,12,11,11,11,11,10,10,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,12,12,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,23,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,0,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,13,13,6,6,13,13,13,13,4,4,13,13,6,6,13,13,13,13,13,13,13,13,13,13,12,12,16,16,8,8,8,8,8,8,8,8,16,16,10,10,10,10,10,10,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,0,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,23,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,5,5,5,5,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,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,12,10,11,11,11,11,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,12,12,12,10,10,10,11,11,11,11,11,11,11,10,10,10,10,12,12,11,11,11,11,11,11,11,11,11,11,11,0,12,12,12,12,10,11,11,11,11,11,11,11,11,11,11,11,0,10,10,10,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,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,10,12,12,10,12,11,11,11,11,11,11,11,11,11,11,11,12,0,12,10,12,10,10,10,10,12,12,11,11,11,11,11,11,11,11,11,11,11,12,11,0,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,10,10,10,10,10,10,12,12,12,10,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,23,12,12,10,10,12,12,12,10,10,10,10,10,10,10,12,12,12,12,12,12,10,10,10,10,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,12,12,10,12,12,10,12,12,12,10,0,12,10,10,10,10,12,12,12,12,10,10,10,10,10,10,12,12,12,10,12,12,12,12,13,3,6,3,13,13,8,16,8,3,4,13,8,6,13,13,8,3,4,8,8,3,3,13,16,3,3,13,3,3,13,3,13,13,10,10,12,11,11,12,10,11,10,11,12,12,12,10,10,10,10,10,10,10,12,12,11,12,12,12,12,10,11,10,10,10,11,11,12,10,10,10,10,10,10,10,10,10,10,12,12,12,12,12,11,12,12,10,12,12,10,12,11,12,12,10,12,10,10,10,10,12,12,11,12,12,11,11,11,11,10,10,10,10,10,10,12,12,12,10,12,11,12,12,12,13,6,13,13,4,13,6,13,13,13,13,13,12,16,8,8,8,8,16,10,10,10,5],"n":["0","Conn","ConnectionOptions","Database","Existing","Fresh","Fresh","InnerNotification","add_captcha_levels","add_traffic_pattern","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","captcha_exists","clone","clone","clone_db","clone_into","clone_into","connect","create_captcha","create_notification","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","dev","disable_logging","email_exists","eq","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","from","from","from","from","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_email","get_password","get_secret","get_traffic_pattern","heading","id","into","into","into","into","into","mark_notification_read","message","migrate","name","ne","ping","pool","pool_options","prelude","received","record_confirm","record_fetch","record_solve","register","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_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","url","username_exists","vzip","vzip","vzip","vzip","vzip","0","0","AccountNotFound","AccountNotFound","AddNotification","AddNotification","BoxDynError","BoxDynError","Captcha","Captcha","CaptchaKeyTaken","CaptchaKeyTaken","CaptchaNotFound","CaptchaNotFound","CloneSPDatabase","CloneSPDatabase","ColumnDecode","ColumnIndexOutOfBounds","ColumnNotFound","Configuration","Conn","Conn","Connect","Connect","CreateCaptcha","CreateCaptcha","DBError","DBError","DBError","DBError","DBOps","DBOps","DBResult","DBResult","Database","Database","Decode","Email","Email","EmailTaken","EmailTaken","Error","GetConnection","GetConnection","Io","Level","Level","Login","Login","MCDatabase","MCDatabase","Migrate","Migrate","Migrate","NameHash","NameHash","Notification","Notification","NotificationNotFound","NotificationNotFound","Pool","Pool","PoolClosed","PoolTimedOut","Protocol","Register","Register","RowNotFound","Secret","Secret","SecretTaken","SecretTaken","StatsUnixTimestamp","StatsUnixTimestamp","Tls","TrafficPattern","TrafficPattern","TrafficPatternNotFound","TrafficPatternNotFound","TypeNotFound","UpdateEmail","UpdateEmail","Username","Username","UsernameTaken","UsernameTaken","WorkerCrashed","add_captcha_levels","add_captcha_levels","add_traffic_pattern","add_traffic_pattern","as_database_error","async_trait","avg_traffic","avg_traffic","borrow","borrow_mut","broke_my_site_traffic","broke_my_site_traffic","captcha_exists","captcha_exists","clone_db","clone_db","config_fetches","config_fetches","config_id","config_id","confirms","confirms","connect","connect","create_captcha","create_captcha","create_notification","create_notification","delete_captcha","delete_captcha","delete_captcha_levels","delete_captcha_levels","delete_traffic_pattern","delete_traffic_pattern","delete_user","delete_user","description","description","description","description","dev","difficulty_factor","difficulty_factor","duration","duration","duration","duration","email","email","email_exists","email_exists","errors","errors","fetch_config_fetched","fetch_config_fetched","fetch_confirm","fetch_confirm","fetch_solve","fetch_solve","fmt","fmt","from","from","from","from","from","from","from","get_all_unread_notifications","get_all_unread_notifications","get_all_user_captchas","get_all_user_captchas","get_captcha_config","get_captcha_config","get_captcha_cooldown","get_captcha_cooldown","get_captcha_levels","get_captcha_levels","get_conn","get_conn","get_email","get_email","get_password","get_password","get_secret","get_secret","get_traffic_pattern","get_traffic_pattern","hash","hash","hash","hash","heading","heading","heading","heading","id","id","into","into_database_error","key","key","key","key","mark_notification_read","mark_notification_read","message","message","message","message","migrate","migrate","name","name","new_email","new_email","ops","ops","peak_sustainable_traffic","peak_sustainable_traffic","ping","ping","prelude","received","received","record_confirm","record_confirm","record_fetch","record_fetch","record_solve","record_solve","register","register","secret","secret","secret","secret","solves","solves","source","tests","tests","to","to","to_string","try_from","try_into","type_id","update_captcha_key","update_captcha_key","update_captcha_metadata","update_captcha_metadata","update_email","update_email","update_password","update_password","update_secret","update_secret","update_username","update_username","username","username","username","username","username","username","username_exists","username_exists","visitor_threshold","visitor_threshold","vzip","0","0","0","0","0","0","0","0","0","0","index","index","len","source","type_name","0","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","async_trait","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","AccountNotFound","AccountNotFound","BoxDynError","BoxDynError","CaptchaKeyTaken","CaptchaKeyTaken","CaptchaNotFound","CaptchaNotFound","DBError","DBError","DBError","DBError","DBResult","DBResult","EmailTaken","EmailTaken","NotificationNotFound","NotificationNotFound","SecretTaken","SecretTaken","TrafficPatternNotFound","TrafficPatternNotFound","UsernameTaken","UsernameTaken","0","0","Conn","Conn","Connect","Connect","DBOps","DBOps","GetConnection","GetConnection","Migrate","Migrate","Pool","Pool","connect","connect","get_conn","get_conn","migrate","migrate","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","dev","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","async_trait","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","database_works","database_works","map_register_err","map_row_not_found_err","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","avg_traffic","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic","captcha_exists","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone","clone_db","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","config_fetches","config_id","confirms","connect","create_captcha","create_notification","default","default","default","default","default","default","default","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","dev","difficulty_factor","duration","duration","email","email_exists","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","eq","errors","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","into","into","into","into","into","into","into","into","into","into","into","into","key","key","mark_notification_read","message","message","migrate","name","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","ne","new_email","ops","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","serialize","solves","source","tests","to","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_owned","to_string","try_from","try_from","try_from","try_from","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","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","async_trait","avg_traffic","broke_my_site_traffic","captcha_exists","clone_db","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","difficulty_factor","duration","duration","email","email_exists","fetch_config_fetched","fetch_confirm","fetch_solve","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","key","key","mark_notification_read","message","message","migrate","name","new_email","peak_sustainable_traffic","ping","prelude","received","record_confirm","record_fetch","record_solve","register","secret","secret","solves","to","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","0","0","0","AccountNotFound","AddNotification","BoxDynError","Captcha","CaptchaKeyTaken","CaptchaNotFound","CloneSPDatabase","Conn","Connect","CreateCaptcha","DBError","DBError","DBOps","DBResult","Email","EmailTaken","GetConnection","Level","Login","MCDatabase","Migrate","NameHash","Notification","NotificationNotFound","Pool","Register","Secret","SecretTaken","StatsUnixTimestamp","TrafficPattern","TrafficPatternNotFound","UpdateEmail","Username","UsernameTaken","add_captcha_levels","add_traffic_pattern","avg_traffic","borrow","borrow_mut","broke_my_site_traffic","captcha_exists","clone","clone_db","clone_into","config_fetches","config_id","confirms","connect","create_captcha","create_notification","delete_captcha","delete_captcha_levels","delete_traffic_pattern","delete_user","description","description","deserialize","difficulty_factor","duration","duration","email","email_exists","eq","fetch_config_fetched","fetch_confirm","fetch_solve","fmt","from","from","get_all_unread_notifications","get_all_user_captchas","get_captcha_config","get_captcha_cooldown","get_captcha_levels","get_conn","get_email","get_password","get_secret","get_traffic_pattern","hash","hash","heading","heading","id","into","key","key","mark_notification_read","message","message","migrate","name","ne","new_email","peak_sustainable_traffic","ping","received","record_confirm","record_fetch","record_solve","register","secret","secret","serialize","solves","to","to_owned","try_from","try_into","type_id","update_captcha_key","update_captcha_metadata","update_email","update_password","update_secret","update_username","username","username","username","username_exists","visitor_threshold","vzip","0","0","0","AccountNotFound","BoxDynError","CaptchaKeyTaken","CaptchaNotFound","DBError","DBError","DBResult","EmailTaken","NotificationNotFound","SecretTaken","TrafficPatternNotFound","UsernameTaken","0","Conn","Connect","DBOps","GetConnection","Migrate","Pool","connect","get_conn","migrate","database_works"],"q":["db_sqlx_postgres","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::ConnectionOptions","","db_sqlx_postgres::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::DBError","","db_sqlx_postgres::dev::Error","","","","","","","","","","","","","db_sqlx_postgres::dev::Login","","","","db_sqlx_postgres::dev::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::dev::DBError","db_sqlx_postgres::dev::dev::Login","","db_sqlx_postgres::dev::dev::prelude","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::dev::prelude::DBError","db_sqlx_postgres::dev::dev::prelude::Login","","db_sqlx_postgres::dev::errors","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::errors::DBError","","db_sqlx_postgres::dev::ops","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::prelude","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::prelude::DBError","db_sqlx_postgres::dev::prelude::Login","","db_sqlx_postgres::dev::prelude::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::dev::prelude::dev::DBError","db_sqlx_postgres::dev::prelude::dev::Login","","db_sqlx_postgres::dev::tests","","db_sqlx_postgres::errors","","db_sqlx_postgres::prelude","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::prelude::DBError","db_sqlx_postgres::prelude::Login","","db_sqlx_postgres::prelude::dev","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::prelude::dev::DBError","db_sqlx_postgres::prelude::dev::Login","","db_sqlx_postgres::prelude::dev::prelude","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","db_sqlx_postgres::prelude::dev::prelude::DBError","db_sqlx_postgres::prelude::dev::prelude::Login","","db_sqlx_postgres::prelude::errors","","","","","","","","","","","","db_sqlx_postgres::prelude::errors::DBError","db_sqlx_postgres::prelude::ops","","","","","","","","","db_sqlx_postgres::prelude::tests"],"d":["","Use an existing database pool","Connect to databse","","existing connection","","fresh connection","Represents notification","Add levels to captcha","Add traffic configuration","","","","","","","","","","","check if captcha exists","","","","","","","create new captcha","create new notification","","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","","","check if email exists","","Error-handling utilities","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","get user email","get a user’s password","get a user’s secret","Get traffic configuration","heading of the notification","db assigned ID of the notification","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","mark a notification read","message of the notification","","receiver name of the notification","","ping DB","","","","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","","check if username exists","","","","","","","","Account not found","Account not found","Data required to add notification","Data required to add notification","Convenience type alias for grouping driver-specific errors","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Data representing a captcha","Captcha key is taken","Captcha key is taken","Captcha not found","Captcha not found","Trait to clone MCDatabase","Trait to clone MCDatabase","Error occurred while decoding a value from a specific …","Column index was out of bounds.","No column found for the given name.","Error occurred while parsing a connection string.","database connection type","database connection type","Create databse connection","Create databse connection","data requried to create new captcha","data requried to create new captcha","Error data structure grouping various error subtypes","Error data structure grouping various error subtypes","errors that are specific to a database implementation","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Database operations trait(migrations, pool creation and …","Generic result data structure","Generic result data structure","","Error returned from the database.","Error occurred while decoding a value.","email as login","email as login","Email is taken","Email is taken","Represents all the ways a method can fail within SQLx.","Get database connection","Get database connection","Error communicating with the database backend.","Level struct that describes threshold-difficulty factor …","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","mCaptcha’s database requirements. To implement support …","database migrations","database migrations","","type encapsulating username and hashed password of a user","type encapsulating username and hashed password of a user","Represents notification","Represents notification","Notification not found","Notification not found","database specific pool-type","database specific pool-type","Pool::close was called while we were waiting in …","A Pool::acquire timed out due to connections not becoming …","Unexpected or invalid data encountered while communicating …","Data required to register a new user","Data required to register a new user","No rows returned by a query that expected to return at …","datastructure representing a user’s secret","datastructure representing a user’s secret","Secret is taken","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","Captcha statistics with time recorded in UNIX epoch formats","Error occurred while attempting to establish a TLS …","User’s traffic pattern; used in generating a captcha …","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","Traffic pattern not found","Type in query doesn’t exist. Likely due to typo or …","data required to update them email of a user","data required to update them email of a user","username as login","username as login","Username is taken","Username is taken","A background worker has crashed.","Add levels to captcha","Add levels to captcha","Add traffic configuration","Add traffic configuration","","","average traffic of user’s website","average traffic of user’s website","","","trafic that bought the user’s website down; optional","trafic that bought the user’s website down; optional","check if captcha exists","check if captcha exists","clone DB","clone DB","times at which the configuration were fetched","times at which the configuration were fetched","Database assigned ID","Database assigned ID","times at which the PoW token was verified","times at which the PoW token was verified","database specific error-type create connection pool","database specific error-type create connection pool","create new captcha","create new captcha","create new notification","create new notification","Delete captcha","Delete captcha","Delete all levels of a captcha","Delete all levels of a captcha","Delete traffic configuration","Delete traffic configuration","delete a user","delete a user","description of the captcha","description of the captcha","description of the captcha","description of the captcha","useful imports for supporting a new database","","","cool down duration","cool down duration","cool down duration","cool down duration","Optionally, email of new use","Optionally, email of new use","check if email exists","check if email exists","represents all the ways a trait can fail using this crate","represents all the ways a trait can fail using this crate","featch PoWConfig fetches","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig confirms","featch PoWConfig solves","featch PoWConfig solves","","","Returns the argument unchanged.","","","","","notification sender","notification sender","get all unread notifications","get all unread notifications","Get all captchas belonging to user","Get all captchas belonging to user","Get captcha config","Get captcha config","Get captcha’s cooldown period","Get captcha’s cooldown period","Get captcha levels","Get captcha levels","database specific error-type get connection from …","database specific error-type get connection from …","get user email","get user email","get a user’s password","get a user’s password","get a user’s secret","get a user’s secret","Get traffic configuration","Get traffic configuration","hashed password of new use","hashed password of new use","hashed password","hashed password","heading of the notification","heading of the notification","heading of the notification","heading of the notification","db assigned ID of the notification","db assigned ID of the notification","Calls U::from(self).","","secret key of the captcha","secret key of the captcha","secret key of the captcha","secret key of the captcha","mark a notification read","mark a notification read","message of the notification","message of the notification","mesage of the notification","mesage of the notification","database specific error-type run migrations","database specific error-type run migrations","receiver name of the notification","receiver name of the notification","new email address of the user","new email address of the user","meta operations like migration and connecting to a database","meta operations like migration and connecting to a database","the peak traffic that the user’s website can handle","the peak traffic that the user’s website can handle","ping DB","ping DB","useful imports for users working with a supported database","when notification was received","when notification was received","record PoWConfig confirms","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig fetches","record PoWConfig solves","record PoWConfig solves","register a new user","register a new user","secret of new user","secret of new user","user’s secret","user’s secret","times at which the PoW was solved","times at which the PoW was solved","","Test utilities","Test utilities","who is the notification addressed to?","who is the notification addressed to?","","","","","update captcha key; doesn’t change metadata","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update captcha metadata; doesn’t change captcha key","update a user’s email","update a user’s email","update user’s password","update user’s password","update a user’s secret","update a user’s secret","update username","update username","username of new user","username of new user","username of the user","username of the user","username","username","check if username exists","check if username exists","","","","","","","","","","","","","","","","","","","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","useful imports for users working with a supported database","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","Account not found","Account not found","Convenience type alias for grouping driver-specific errors","Convenience type alias for grouping driver-specific errors","Captcha key is taken","Captcha key is taken","Captcha not found","Captcha not found","Error data structure grouping various error subtypes","Error data structure grouping various error subtypes","errors that are specific to a database implementation","errors that are specific to a database implementation","Generic result data structure","Generic result data structure","Email is taken","Email is taken","Notification not found","Notification not found","Secret is taken","Secret is taken","Traffic pattern not found","Traffic pattern not found","Username is taken","Username is taken","","","database connection type","database connection type","Create databse connection","Create databse connection","Database operations trait(migrations, pool creation and …","Database operations trait(migrations, pool creation and …","Get database connection","Get database connection","database migrations","database migrations","database specific pool-type","database specific pool-type","database specific error-type create connection pool","database specific error-type create connection pool","database specific error-type get connection from …","database specific error-type get connection from …","database specific error-type run migrations","database specific error-type run migrations","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","useful imports for supporting a new database","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","test all database functions","test all database functions","map postgres errors to DBError types","map custom row not found error to DB error","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","average traffic of user’s website","","","","","","","","","","","","","","","","","","","","","","","","","trafic that bought the user’s website down; optional","check if captcha exists","","","","","","","","","","","","clone DB","","","","","","","","","","","","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","","","","","","","","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","","","","","","","","","","","useful imports for supporting a new database","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","","","","","","","","","","","","represents all the ways a trait can fail using this crate","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","","","","","","","","","","","","new email address of the user","meta operations like migration and connecting to a database","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","","","","","","","","","","","","times at which the PoW was solved","","Test utilities","who is the notification addressed to?","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","","","","","","","","","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","","average traffic of user’s website","trafic that bought the user’s website down; optional","check if captcha exists","clone DB","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","new email address of the user","the peak traffic that the user’s website can handle","ping DB","useful imports for users working with a supported database","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","times at which the PoW was solved","who is the notification addressed to?","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","Account not found","Data required to add notification","Convenience type alias for grouping driver-specific errors","Data representing a captcha","Captcha key is taken","Captcha not found","Trait to clone MCDatabase","database connection type","Create databse connection","data requried to create new captcha","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Database operations trait(migrations, pool creation and …","Generic result data structure","email as login","Email is taken","Get database connection","Level struct that describes threshold-difficulty factor …","types of credentials used as identifiers during login","mCaptcha’s database requirements. To implement support …","database migrations","type encapsulating username and hashed password of a user","Represents notification","Notification not found","database specific pool-type","Data required to register a new user","datastructure representing a user’s secret","Secret is taken","Captcha statistics with time recorded in UNIX epoch formats","User’s traffic pattern; used in generating a captcha …","Traffic pattern not found","data required to update them email of a user","username as login","Username is taken","Add levels to captcha","Add traffic configuration","average traffic of user’s website","","","trafic that bought the user’s website down; optional","check if captcha exists","","clone DB","","times at which the configuration were fetched","Database assigned ID","times at which the PoW token was verified","database specific error-type create connection pool","create new captcha","create new notification","Delete captcha","Delete all levels of a captcha","Delete traffic configuration","delete a user","description of the captcha","description of the captcha","","","cool down duration","cool down duration","Optionally, email of new use","check if email exists","","featch PoWConfig fetches","featch PoWConfig confirms","featch PoWConfig solves","","Returns the argument unchanged.","notification sender","get all unread notifications","Get all captchas belonging to user","Get captcha config","Get captcha’s cooldown period","Get captcha levels","database specific error-type get connection from …","get user email","get a user’s password","get a user’s secret","Get traffic configuration","hashed password of new use","hashed password","heading of the notification","heading of the notification","db assigned ID of the notification","Calls U::from(self).","secret key of the captcha","secret key of the captcha","mark a notification read","message of the notification","mesage of the notification","database specific error-type run migrations","receiver name of the notification","","new email address of the user","the peak traffic that the user’s website can handle","ping DB","when notification was received","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig solves","register a new user","secret of new user","user’s secret","","times at which the PoW was solved","who is the notification addressed to?","","","","","update captcha key; doesn’t change metadata","update captcha metadata; doesn’t change captcha key","update a user’s email","update user’s password","update a user’s secret","update username","username of new user","username of the user","username","check if username exists","","","","","","Account not found","Convenience type alias for grouping driver-specific errors","Captcha key is taken","Captcha not found","Error data structure grouping various error subtypes","errors that are specific to a database implementation","Generic result data structure","Email is taken","Notification not found","Secret is taken","Traffic pattern not found","Username is taken","","database connection type","Create databse connection","Database operations trait(migrations, pool creation and …","Get database connection","database migrations","database specific pool-type","database specific error-type create connection pool","database specific error-type get connection from …","database specific error-type run migrations","test all database functions"],"i":[1,0,0,0,2,0,2,0,3,3,1,2,4,3,5,1,2,4,3,5,3,3,5,3,3,5,2,3,3,5,3,3,3,3,0,4,3,5,0,3,3,3,5,1,2,4,3,5,3,3,3,3,3,3,3,3,3,5,5,1,2,4,3,5,3,5,3,5,5,3,3,4,0,5,3,3,3,3,3,5,1,2,4,3,5,1,2,4,3,5,1,2,4,3,5,3,3,3,3,3,3,4,3,1,2,4,3,5,6,7,8,8,0,0,0,0,0,0,8,8,8,8,0,0,9,9,9,9,10,10,0,0,0,0,0,0,8,8,0,0,0,0,0,9,9,11,11,8,8,0,0,0,9,0,0,0,0,0,0,0,0,9,0,0,0,0,8,8,12,12,9,9,9,0,0,9,0,0,8,8,0,0,9,0,0,8,8,9,0,0,11,11,8,8,9,13,13,13,13,9,0,14,14,9,9,14,14,13,13,15,15,16,16,17,17,16,16,12,12,13,13,13,13,13,13,13,13,13,13,13,13,18,18,17,17,0,19,19,18,18,17,17,20,20,13,13,0,0,13,13,13,13,13,13,9,9,9,9,9,9,9,21,21,13,13,13,13,13,13,13,13,13,13,10,10,13,13,13,13,13,13,13,13,20,20,22,22,23,23,21,21,23,23,9,9,18,18,17,17,13,13,23,23,21,21,24,24,23,23,25,25,0,0,14,14,13,13,0,23,23,13,13,13,13,13,13,13,13,20,20,26,26,16,16,9,0,0,21,21,9,9,9,9,13,13,13,13,13,13,13,13,13,13,13,13,20,20,25,25,22,22,13,13,19,19,9,27,27,28,29,30,31,32,33,34,35,36,37,36,37,38,39,39,40,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,0,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,0,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,8,8,0,0,8,8,8,8,0,0,8,8,0,0,8,8,8,8,8,8,8,8,8,8,27,27,10,10,0,0,0,0,0,0,0,0,12,12,12,12,10,10,24,24,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,0,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,0,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,0,0,0,0,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,14,8,20,25,11,22,16,23,21,14,18,17,26,8,20,25,11,22,16,23,21,14,18,17,26,14,13,20,25,11,22,16,23,21,14,18,17,26,15,20,25,11,22,16,23,21,14,18,17,26,16,17,16,12,13,13,16,23,21,14,18,17,26,13,13,13,13,18,17,20,25,11,22,16,23,21,14,18,17,26,0,19,18,17,20,13,20,25,11,22,16,23,21,14,18,17,26,0,13,13,13,8,8,20,25,11,22,16,23,21,14,18,17,26,8,20,25,11,22,16,23,23,21,14,18,17,26,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,8,20,25,11,22,16,23,21,14,18,17,26,18,17,13,23,21,24,23,20,25,11,22,16,23,21,14,18,17,26,25,0,14,13,23,13,13,13,13,20,26,20,25,11,22,16,23,21,14,18,17,26,16,8,0,21,20,25,11,22,16,23,21,14,18,17,26,8,8,20,25,11,22,16,23,21,14,18,17,26,8,20,25,11,22,16,23,21,14,18,17,26,8,20,25,11,22,16,23,21,14,18,17,26,13,13,13,13,13,13,20,25,22,13,19,8,20,25,11,22,16,23,21,14,18,17,26,27,39,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,0,14,14,13,15,16,17,16,12,13,13,13,13,13,13,18,17,19,18,17,20,13,13,13,13,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,18,17,13,23,21,24,23,25,14,13,0,23,13,13,13,13,20,26,16,21,13,13,13,13,13,13,20,25,22,13,19,27,39,40,8,0,0,0,8,8,0,10,0,0,0,8,0,0,11,8,0,0,0,0,0,0,0,8,12,0,0,8,0,0,8,0,11,8,13,13,14,19,19,14,13,19,15,19,16,17,16,12,13,13,13,13,13,13,18,17,19,19,18,17,20,13,19,13,13,13,19,19,21,13,13,13,13,13,10,13,13,13,13,20,22,23,21,23,19,18,17,13,23,21,24,23,19,25,14,13,23,13,13,13,13,20,26,19,16,21,19,19,19,19,13,13,13,13,13,13,20,25,22,13,19,19,27,39,40,8,0,8,8,0,8,0,8,8,8,8,8,27,10,0,0,0,0,12,12,10,24,0],"f":[null,null,null,null,null,null,null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["database",3]],[[["",0]],["innernotification",3]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],[[["",0],["",0]]],[[["",0],["",0]]],[[],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8]]]]]],[[],["innernotification",3]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["innernotification",3]],["bool",0]],null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,[[]],[[]],[[]],[[]],[[]],[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8]]]]]],null,[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],null,[[["",0],["innernotification",3]],["bool",0]],[[["",0]],["pin",3,[["box",3,[["future",8]]]]]],null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[]],[[]],[[]],[[]],[[]],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,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,null,null,null,null,null,null,null,null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["option",4,[["databaseerror",8]]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[]],[[["migrateerror",4]],["error",4]],[[["invaliddnsnameerror",3]],["error",4]],[[["error",3]],["error",4]],[[],["error",4]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,null,null,null,[[]],[[],["option",4,[["box",3,[["databaseerror",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0]],["option",4,[["error",8]]]],null,null,null,null,[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["register",3],["createcaptcha",3],["trafficpattern",3],["addnotification",3]]],[[["",0],["register",3],["createcaptcha",3],["trafficpattern",3],["addnotification",3]]],[[["error",4]],["dberror",4]],[[["error",4],["dberror",4]],["dberror",4]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["register",3]],[[["",0]],["updateemail",3]],[[["",0]],["login",4]],[[["",0]],["namehash",3]],[[["",0]],["statsunixtimestamp",3]],[[["",0]],["notification",3]],[[["",0]],["addnotification",3]],[[["",0]],["trafficpattern",3]],[[["",0]],["createcaptcha",3]],[[["",0]],["captcha",3]],[[["",0]],["secret",3]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[],["statsunixtimestamp",3]],[[],["notification",3]],[[],["addnotification",3]],[[],["trafficpattern",3]],[[],["createcaptcha",3]],[[],["captcha",3]],[[],["secret",3]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[],["result",4,[["register",3]]]],[[],["result",4,[["updateemail",3]]]],[[],["result",4,[["login",4]]]],[[],["result",4,[["namehash",3]]]],[[],["result",4,[["statsunixtimestamp",3]]]],[[],["result",4,[["notification",3]]]],[[],["result",4,[["addnotification",3]]]],[[],["result",4,[["trafficpattern",3]]]],[[],["result",4,[["createcaptcha",3]]]],[[],["result",4,[["captcha",3]]]],[[],["result",4,[["secret",3]]]],null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["bool",0]],[[["",0],["updateemail",3]],["bool",0]],[[["",0],["login",4]],["bool",0]],[[["",0],["namehash",3]],["bool",0]],[[["",0],["statsunixtimestamp",3]],["bool",0]],[[["",0],["notification",3]],["bool",0]],[[["",0],["addnotification",3]],["bool",0]],[[["",0],["trafficpattern",3]],["bool",0]],[[["",0],["createcaptcha",3]],["bool",0]],[[["",0],["captcha",3]],["bool",0]],[[["",0],["secret",3]],["bool",0]],null,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["innernotification",3]]],[[]],[[]],[[]],[[]],[[]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["register",3]],["bool",0]],[[["",0],["updateemail",3]],["bool",0]],[[["",0],["login",4]],["bool",0]],[[["",0],["namehash",3]],["bool",0]],[[["",0],["statsunixtimestamp",3]],["bool",0]],[[["",0],["notification",3]],["bool",0]],[[["",0],["addnotification",3]],["bool",0]],[[["",0],["trafficpattern",3]],["bool",0]],[[["",0],["createcaptcha",3]],["bool",0]],[[["",0],["captcha",3]],["bool",0]],[[["",0],["secret",3]],["bool",0]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],null,[[["",0]],["option",4,[["error",8]]]],null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["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]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],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,[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0],["trafficpattern",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["level",3]],[[["",0]],["box",3,[["mcdatabase",8],["global",3]]]],[[["",0],["",0]]],null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["addnotification",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[],["result",4,[["level",3]]]],null,null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["level",3]],["bool",0]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["formatter",3]],["result",4,[["error",3]]]],[[]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["option",4,[["str",0]]],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["login",4]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,null,null,[[]],null,null,[[["",0],["str",0],["i32",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["level",3]],["bool",0]],null,null,[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,[[["",0]],["result",4]],null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0],["str",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["createcaptcha",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["updateemail",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["namehash",3]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["str",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,null,null,[[["",0],["str",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],null,[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0]],["pin",3,[["box",3,[["future",8],["global",3]]]]]],[[["",0],["register",3],["createcaptcha",3],["trafficpattern",3],["addnotification",3]]]],"p":[[3,"Conn"],[4,"ConnectionOptions"],[3,"Database"],[3,"Fresh"],[3,"InnerNotification"],[13,"Fresh"],[13,"Existing"],[4,"DBError"],[4,"Error"],[8,"GetConnection"],[4,"Login"],[8,"Connect"],[8,"MCDatabase"],[3,"TrafficPattern"],[8,"CloneSPDatabase"],[3,"StatsUnixTimestamp"],[3,"Captcha"],[3,"CreateCaptcha"],[3,"Level"],[3,"Register"],[3,"AddNotification"],[3,"NameHash"],[3,"Notification"],[8,"Migrate"],[3,"UpdateEmail"],[3,"Secret"],[13,"DBError"],[13,"Configuration"],[13,"Database"],[13,"Io"],[13,"Tls"],[13,"Protocol"],[13,"ColumnNotFound"],[13,"Decode"],[13,"Migrate"],[13,"ColumnIndexOutOfBounds"],[13,"ColumnDecode"],[13,"TypeNotFound"],[13,"Username"],[13,"Email"]]},\ +"mcaptcha":{"doc":"","t":[6,6,3,17,17,3,3,17,3,3,3,3,17,3,3,3,3,3,3,3,17,17,17,17,3,3,3,3,17,3,3,17,17,12,12,12,12,12,12,12,12,12,12,12,12,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,12,12,0,12,0,12,12,0,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,12,5,0,12,0,12,0,12,12,12,0,0,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,0,0,2,3,0,0,11,11,11,11,5,11,0,0,0,0,12,0,5,11,11,11,11,3,3,2,11,11,11,11,11,11,11,11,0,11,11,0,12,11,11,11,11,11,11,2,0,0,0,11,11,5,11,11,11,11,11,11,11,11,0,12,11,11,11,11,3,11,11,11,0,5,11,11,11,11,5,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,3,11,11,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,12,12,12,11,11,5,11,11,11,11,11,11,11,11,11,11,5,3,11,11,11,3,11,11,12,12,11,12,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,11,11,3,11,11,11,11,5,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,0,11,5,3,11,11,11,11,11,11,11,11,11,11,12,3,11,11,11,5,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,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,0,0,5,0,5,0,0,3,3,11,11,11,11,11,11,11,11,3,12,11,11,12,11,11,11,11,11,11,11,12,12,12,11,0,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,5,3,11,11,11,11,11,11,3,11,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,12,5,11,11,11,11,3,11,12,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,11,11,0,11,11,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,3,11,11,12,11,11,11,11,11,11,12,11,3,3,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,3,11,11,12,12,12,11,12,11,11,12,11,11,11,12,12,11,3,11,11,11,11,11,11,11,11,11,11,3,11,11,12,11,0,11,11,11,11,11,11,11,11,11,11,3,11,11,11,12,11,11,11,11,11,11,3,11,11,11,11,11,11,12,11,12,11,11,11,11,11,11,12,12,11,11,0,11,11,11,11,11,11,11,11,11,11,3,3,11,11,11,5,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,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,12,12,12,12,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,11,11,11,11,11,12,11,11,12,11,11,11,12,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,12,11,11,12,12,11,12,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,12,11,11,3,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,12,11,12,11,11,11,11,11,2,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,11,12,11,11,14,12,11,11,11,11,12,11,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,11,12,11,12,12,11,11,11,11,3,13,6,13,4,11,11,11,11,11,12,12,12,14,14,11,11,11,11,11,11,11,12,11,11,11,11,11,12,12,11,11,11,11,11,11,11,11,11,11,12,12,17,3,17,17,17,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,17,17,3,11,11,11,11,11,12,11,11,11,11,11,11,11,11,3,17,17,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,5,3,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,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,12,13,13,13,13,13,13,3,13,3,13,13,13,13,4,6,13,13,13,13,4,13,6,3,13,13,13,13,13,13,13,11,11,11,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,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,17,0,0,5,0,0,5,0,0,0,0,5,0,3,3,17,12,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,3,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,12,12,11,11,11,11,11,17,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,12,11,17,3,3,17,3,12,12,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,12,11,11,11,11,0,5,12,11,11,11,11,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,0,3,11,11,11,0,5,0,0,12,11,11,11,11,11,11,11,11,11,3,3,17,11,11,11,11,11,11,11,11,11,11,12,12,11,11,11,12,12,12,11,3,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,12,11,11,12,12,12,11,11,11,11,3,17,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,11,11,11,11,11,11,11,11,11,0,12,5,3,11,11,11,11,11,11,11,11,11,11,11,11,11,3,12,11,11,11,11,3,11,11,12,11,11,12,11,11,11,11,11,12,11,0,0,0,0,0,5,0,3,3,3,3,17,12,12,3,12,11,11,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,3,12,12,12,12,12,11,11,11,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,11,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,3,3,17,3,11,11,11,11,11,11,11,11,11,11,11,11,12,3,12,11,11,11,11,11,11,11,11,12,12,12,12,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,3,17,11,11,11,11,11,11,11,11,11,11,3,11,11,11,11,12,11,11,11,11,11,11,11,11,11,3,12,12,11,11,12,12,12,11,11,11,11,11,11,11,12,11,11,11,11,12,11,3,17,11,11,11,11,11,11,12,11,11,11,11,12,12,12,11,11,11,11,12,11,11,11,11,11,11,11,3,11,11,17,3,12,12,11,11,12,12,11,11,11,12,11,11,12,12,12,12,12,11,11,11,11,3,3,12,11,11,11,11,11,11,11,11,11,11,12,11,11,11,11,11,11,11,11,11,3,11,11,11,11,11,11,11,11,11,11,12,11,11,11,5,3,3,3,3,3,3,3,3,12,12,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,5,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,11,11,11,11,11,11,11,11,12,12,12,11,11,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,11,12,12,11,12,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,11,11,11,11,12,12,12,12,12,12,11,11,11,11,11,11,11,11,2,0,5,0,3,11,11,12,11,11,11,11,11,11,11,11,3,3,0,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,3,3,3,3,3,3,6,3,3,3,3,12,12,12,12,12,12,12,12,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,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,11,11,11,11,11,11,11,11,11,11,11,3,8,3,3,8,11,11,11,11,11,11,11,11,11,11,11,11,10,12,12,11,11,11,11,11,11,11,10,11,11,11,11,11,11,11,11,11,11,11,11,10,11,11,10,11,11,10,11,11,11,12,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,3,3,17,17,12,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","ArcData","BAR_CHART","CACHE_AGE","COMPILED_DATE","CREDIT_CARD","CSS","DOCS","DOCS_ICON","Data","FILES","GITHUB","GIT_COMMIT_HASH","HELP_CIRCLE","HOME","JS","KEY","MCAPTCHA_TRANS_ICON","MESSAGE","MOBILE_CSS","PAGES","PKG_DESCRIPTION","PKG_HOMEPAGE","PKG_NAME","SETTINGS","SETTINGS_ICON","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","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","allow_demo","allow_registration","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","captcha","commercial","creds","data","database","date","db","debug","demo","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","into","into","into","into","into","into","into","into","mailer","main","pages","redis","routes","server","settings","settings","smtp","source_code","static_assets","stats","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","ROUTES","RedirectQuery","account","auth","borrow","borrow_mut","deserialize","from","get_middleware","into","mcaptcha","meta","notifications","pow","redirect_to","routes","services","try_from","try_into","type_id","vzip","AccountCheckPayload","AccountCheckResp","auth","borrow","borrow","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","delete","deserialize","deserialize","email","exists","fmt","fmt","from","from","into","into","mcaptcha","password","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","runners","services","try_from","try_into","type_id","vzip","delete_user","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","ChangePasswordReqest","UpdatePassword","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","confirm_new_password","confirm_new_password","deserialize","fmt","from","from","from","from","into","into","into","new_password","new_password","password","register","serialize","services","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_password_runner","update_user_password","vzip","vzip","vzip","Account","borrow","borrow_mut","delete","email_exists","from","get_secret","into","new","try_from","try_into","type_id","update_email","update_password","update_secret","update_username","username_exists","vzip","borrow","borrow","borrow_mut","borrow_mut","from","from","get_secret","into","into","register","register","services","try_from","try_from","try_into","try_into","type_id","type_id","update_user_secret","vzip","vzip","Username","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deserialize","fmt","from","from","from","into","into","into","register","register","runners","serialize","services","set_username","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","username","username_exists","vzip","vzip","vzip","username_exists","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","get_login_route","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","create","delete","easy","get","get_random","routes","services","stats","update","CreateCaptcha","MCaptchaDetails","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","create","description","deserialize","deserialize","duration","fmt","from","from","from","into","into","into","key","levels","name","register","runner","serialize","serialize","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","create","DeleteCaptcha","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","delete","deserialize","fmt","from","from","into","into","key","password","register","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","TrafficPatternRequest","UpdateTrafficPattern","avg_traffic","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic","calculate","clone","clone","clone_into","clone_into","create","default","description","deserialize","deserialize","fmt","fmt","from","from","from","from","into","into","into","into","key","pattern","peak_sustainable_traffic","register","register","routes","serialize","serialize","services","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","update","vzip","vzip","vzip","vzip","Easy","borrow","borrow_mut","create","from","into","new","try_from","try_into","type_id","update","vzip","I32Levels","Levels","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","deserialize","deserialize","difficulty_factor","fmt","fmt","from","from","from","get_captcha","into","into","into","levels","register","serialize","serialize","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","visitor_threshold","vzip","vzip","vzip","Captcha","borrow","borrow_mut","create","delete","easy","from","get","into","new","stats","try_from","try_into","type_id","update","update_key","vzip","StatsPayload","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","deserialize","fmt","from","from","get","into","into","key","register","routes","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Stats","borrow","borrow_mut","from","get","into","new","try_from","try_into","type_id","vzip","UpdateCaptcha","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","description","deserialize","duration","from","from","from","into","into","into","key","levels","register","register","runner","serialize","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","update_captcha","update_key","vzip","vzip","vzip","update_captcha","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","create_empty","create_empty","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","0","0","0","0","Meta","borrow","borrow_mut","build_details","from","health","into","new","try_from","try_into","type_id","vzip","add","get","mark_read","routes","services","AddNotificationRequest","add_notification","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","deserialize","eq","fmt","from","from","heading","into","into","message","ne","register","serialize","to","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","NotificationResp","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","default","deserialize","eq","from","from","from","from_notifications","get_notification","heading","id","into","into","message","name","ne","received","register","serialize","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","MarkReadReq","borrow","borrow","borrow_mut","borrow_mut","deserialize","from","from","id","into","into","mark_read","register","serialize","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","Notifications","add","borrow","borrow_mut","from","get","into","mark_read","new","try_from","try_into","type_id","vzip","I32Levels","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","get_config","into","new","rm_scope","scope","try_from","try_into","type_id","validate_captcha_token","validate_captcha_token","verify_pow","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","captcha","from","get_login_route","into","meta","new","notifications","pow","try_from","try_into","type_id","vzip","Data","Embedded","Mailer","Redis","SystemGroup","add_site","borrow","borrow","borrow_mut","borrow_mut","captcha","creds","db","enum_system_actor","enum_system_wrapper","from","from","get_creds","get_mailer","get_pow","into","into","mailer","new","new","new_system","remove","rename","settings","stats","try_from","try_from","try_into","try_into","type_id","type_id","validate_verification_tokens","verify_pow","vzip","vzip","0","0","DAY","Date","HOUR","MINUTE","WEEK","borrow","borrow_mut","clone","clone_into","date","fmt","format","from","into","new","print_date","time","to_owned","try_from","try_into","type_id","vzip","DEMO_PASSWORD","DEMO_USER","DemoUser","abort","borrow","borrow_mut","delete_demo_user","from","handle","into","register_demo_user","run","spawn","try_from","try_into","type_id","vzip","Asset","DOCS","OPEN_API_SPEC","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","dist","from","from","from","from","get","get","handle_embedded_file","index","into","into","into","into","iter","iter","register","register","register","routes","services","spec","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","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","0","AccountNotFound","BlacklistError","CaptchaError","CaptchaNotFound","ClosedForRegistration","DBError","DBErrorWrapper","EmailTaken","ErrorToResponse","InternalServerError","InternalServerError","NotAUrl","NotAnEmail","PageError","PageResult","PasswordTooLong","PasswordTooShort","PasswordsDontMatch","ProfainityError","ServiceError","ServiceError","ServiceResult","SmtpErrorWrapper","TokenNotFound","TrafficPatternNotFound","UnableToSendEmail","UsernameCaseMappedError","UsernameNotFound","UsernameTaken","WrongPassword","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deserialize","eq","eq","eq","eq","error","error_response","error_response","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","ne","ne","serialize","source","source","source","source","status_code","status_code","to_string","to_string","to_string","to_string","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","vzip","vzip","vzip","vzip","vzip","0","0","0","0","NAME","auth","errors","get_middleware","panel","routes","services","sitemap","login","register","routes","services","sudo","INDEX","IndexPage","PAGE","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","from","from","from","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","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","get_login_route","get_sitemap","into","join","login","new","try_from","try_into","type_id","vzip","PAGE","SudoPage","borrow","borrow_mut","clone","clone_into","data","from","into","new","render_once","render_once_to","to_owned","try_from","try_into","type_id","url","vzip","ERROR_ROUTE","ErrorPage","INTERNAL_SERVER_ERROR_BODY","PAGE","UNKNOWN_ERROR_BODY","__private_field","__private_field","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deref","deref","error","from","from","from","from","into","into","into","into","message","new","register","render_once","render_once_to","routes","services","title","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","vzip","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","notifications","panel","register","render_once","render_once_to","routes","services","settings","sitekey","sitekeys","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","vzip","vzip","IndexPage","Notification","PAGE","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","from","from","from","from","heading","id","into","into","into","message","n","name","new","notifications","print_date","received","register","render_once","render_once_to","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","Panel","borrow","borrow_mut","from","get_sitemap","home","into","new","notifications","settings","sitekey","try_from","try_into","type_id","vzip","IndexPage","PAGE","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","delete_account","email","from","from","from","from","into","into","into","into","register","register","register","render_once","render_once_to","routes","secret","services","settings","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","update_secret","username","vzip","vzip","vzip","vzip","Settings","borrow","borrow_mut","delete_account","from","get_sitemap","home","into","new","try_from","try_into","type_id","update_secret","vzip","add","delete","edit","list","routes","services","view","ADVANCE_INDEX","AdvanceIndexPage","EASY_INDEX","EasyIndexPage","PAGE","__private_field","__private_field","advance","avg_traffic","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic","clone","clone","clone_into","clone_into","default","default","deref","deref","easy","form_description","form_description","form_duration","form_title","form_title","from","from","from","from","from","from","into","into","into","into","into","into","levels","peak_sustainable_traffic","register","register","render_once","render_once","render_once_to","render_once_to","to_owned","to_owned","try_from","try_from","try_from","try_from","try_from","try_from","try_into","try_into","try_into","try_into","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","borrow","borrow_mut","delete_sitekey","from","into","register","try_from","try_into","type_id","vzip","AdvanceEditPage","EasyEditPage","PAGE","advance","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone_into","clone_into","duration","easy","form_title","from","from","from","from","into","into","into","into","key","key","levels","name","new","new","pattern","register","register","render_once","render_once","render_once_to","render_once_to","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","vzip","vzip","vzip","vzip","IndexPage","PAGE","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","from","from","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_advance","add_easy","borrow","borrow_mut","delete","edit_advance","edit_easy","from","get_delete","get_edit_advance","get_edit_easy","get_sitemap","get_view","into","list","new","try_from","try_into","type_id","view","vzip","IndexPage","PAGE","borrow","borrow","borrow_mut","borrow_mut","clone","clone_into","duration","from","from","into","into","key","levels","name","new","register","render_once","render_once_to","stats","to_owned","try_from","try_from","try_into","try_into","type_id","type_id","view_sitekey","vzip","vzip","ROUTES","Routes","about","auth","borrow","borrow_mut","donate","errors","from","get_login_route","get_sitemap","home","into","new","panel","privacy","security","sitemap","thanks","try_from","try_into","type_id","vzip","INDEX","IndexPage","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","default","deref","domain","from","from","from","into","into","into","register","render_once","render_once_to","sitemap","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","urls","vzip","vzip","vzip","services","Captcha","Database","DatabaseBuilder","DefaultDifficultyStrategy","Redis","Server","Settings","Smtp","allow_demo","allow_registration","avg_traffic_difficulty","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","broke_my_site_traffic_difficulty","captcha","check_url","clone","clone","clone","clone","clone","clone","clone","clone","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","clone_into","commercial","cookie_secret","database","debug","default_difficulty_strategy","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","deserialize","domain","duration","enable_stats","extract_database_url","fmt","fmt","fmt","fmt","fmt","fmt","fmt","fmt","from","from","from","from","from","from","from","from","from","gc","get_ip","hostname","into","into","into","into","into","into","into","into","ip","name","new","password","password","peak_sustainable_traffic_difficulty","pool","pool","port","port","port","proxy_has_tls","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","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","url","url","url","url_prefix","username","username","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","FileMap","filemap","services","static_files","FileMap","borrow","borrow_mut","files","from","get","into","new","try_from","try_into","type_id","vzip","Asset","Favicons","assets","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","BAR_CHART","CREDIT_CARD","DOCS_ICON","GITHUB","HELP_CIRCLE","HOME","Img","KEY","MCAPTCHA_TRANS_ICON","MESSAGE","SETTINGS_ICON","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","__private_field","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","borrow_mut","deref","deref","deref","deref","deref","deref","deref","deref","deref","deref","from","from","from","from","from","from","from","from","from","from","into","into","into","into","into","into","into","into","into","into","try_from","try_from","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","try_into","try_into","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","type_id","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","vzip","CaptchaStats","CloneStats","Dummy","Real","Stats","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone","clone","clone_into","clone_into","clone_into","clone_stats","config_fetches","confirms","default","default","default","deserialize","eq","eq","eq","fetch","fetch","fetch","fmt","fmt","fmt","from","from","from","into","into","into","ne","record_confirm","record_confirm","record_confirm","record_fetch","record_fetch","record_fetch","record_solve","record_solve","record_solve","serialize","solves","to_owned","to_owned","to_owned","try_from","try_from","try_from","try_into","try_into","try_into","type_id","type_id","type_id","vzip","vzip","vzip","INDEX_PAGE","IndexPage","PAGE","WIDGET_ROUTES","__private_field","borrow","borrow","borrow","borrow_mut","borrow_mut","borrow_mut","clone","clone_into","deref","from","from","from","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::delete::runners","mcaptcha::api::v1::account::email","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::password","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::routes","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::secret","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::username","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::account::username::runners","mcaptcha::api::v1::auth","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::auth::routes","","","","","","","","","","","","","","mcaptcha::api::v1::auth::runners","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha","","","","","","","","","mcaptcha::api::v1::mcaptcha::create","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::create::runner","mcaptcha::api::v1::mcaptcha::delete","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::easy","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::easy::routes","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::get","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::routes","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::stats","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::stats::routes","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::update","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::mcaptcha::update::runner","mcaptcha::api::v1::meta","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::api::v1::meta::BuildDetailsBuilderError","","mcaptcha::api::v1::meta::HealthBuilderError","","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::data::SystemGroup","","mcaptcha::date","","","","","","","","","","","","","","","","","","","","","","mcaptcha::demo","","","","","","","","","","","","","","","","","mcaptcha::docs","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::docs::routes","","","","","","","","","","","","","mcaptcha::email","mcaptcha::email::verification","","","","","","","","","","","","","","","","","","mcaptcha::errors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::errors::PageError","mcaptcha::errors::ServiceError","","","mcaptcha::pages","","","","","","","","mcaptcha::pages::auth","","","","","mcaptcha::pages::auth::login","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::auth::register","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::auth::routes","","","","","","","","","","","","","","mcaptcha::pages::auth::sudo","","","","","","","","","","","","","","","","","","mcaptcha::pages::errors","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::errors::routes","","","","","","","","","","","","mcaptcha::pages::panel","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::notifications","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::routes","","","","","","","","","","","","","","","mcaptcha::pages::panel::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::settings::routes","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey","","","","","","","mcaptcha::pages::panel::sitekey::add","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::delete","","","","","","","","","","mcaptcha::pages::panel::sitekey::edit","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::list","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::routes","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::panel::sitekey::view","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::routes","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::pages::sitemap","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::routes","mcaptcha::settings","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::static_assets","","","","mcaptcha::static_assets::filemap","","","","","","","","","","","","mcaptcha::static_assets::static_files","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::static_assets::static_files::assets","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","mcaptcha::stats","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","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.","","","database ops defined by db crates","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","email client","","","","","","","app settings","","","","","stats recorder","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","User facing CAPTCHA widget","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","update email","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","update username","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","returns Ok(()) when everything checks out and the user is …","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","User’s traffic pattern; used in generating a captcha …","","average traffic of user’s website","","","","","","","","","trafic that bought the user’s website down; optional","","","","","","","","Captcha description","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","the peak traffic that the user’s website can handle","","","","","","","","","","","","","","","","","","","","","","","","","","","","","easy is using defaults","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Builder for BuildDetails.","Error type for BuildDetailsBuilder","Health check return datatype","Builder for Health.","Error type for HealthBuilder","Uninitialized field","Uninitialized field","Custom validation error","Custom validation error","","","","","","","","","","","","","","","","","Builds a new BuildDetails.","Builds a new Health.","emmits build details of the bninary","","","","","","","","","Create an empty builder, with all fields set to None or …","Create an empty builder, with all fields set to None or …","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","checks all components of the system","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","route handler that adds a notification message","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","route handler that gets all unread notifications","","","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","route handler that marks a notification read","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","PoW Verification module","PoW success token module","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","get PoW configuration for an mcaptcha key","Call this when MCaptcha is not in master.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","Returns the argument unchanged.","remove scope for $name route","","Calls U::from(self).","","","","","","","remove scope for $name route","","remove scope for $name route","","","validation token that clients receive as proof for …","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","route handler that verifies PoW and issues a solution token","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","route hander that validates a PoW solution token","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","App data","","Mailer data type AsyncSmtpTransport","","Represents mCaptcha cache and master system. When Redis is …","","","","","","mCaptcha system: Redis cache, etc.","credential management configuration","database ops defined by db crates","","","Returns the argument unchanged.","Returns the argument unchanged.","","","","Calls U::from(self).","Calls U::from(self).","email client","","create new instance of app data","","","","app settings","stats recorder","","","","","","","","","","","","","","","","","","","","","","print date","","","Returns the argument unchanged.","Calls U::from(self).","","print relative time from date","","","","","","","Demo password","Demo username","","","","","","Returns the argument unchanged.","","Calls U::from(self).","register demo user runner","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get an embedded file and its metadata.","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Iterates over the file paths in the folder.","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","Email operations: verification, notification, etc","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","when the value passed contains blacklisted words see …","","captcha not found","","","","email is already taken","","","","","","","","","","","when the value passed contains profainity","","","","","token not found","Traffic pattern not found","Unable to send email","when the value passed contains characters not present in …","","when the a username is already taken","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","","","Returns the argument unchanged.","","","","","","","Returns the argument unchanged.","","Returns the argument unchanged.","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","notifications","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","","","","","route handler that renders individual views for sitekeys","","","","","","","","","","","","","","route handler that renders individual views for sitekeys","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","render a list of all sitekeys that a user has","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","route handler that renders individual views for sitekeys","","","","","","","","","","","Returns the argument unchanged.","","","","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","","","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","","Calls U::from(self).","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Get an embedded file and its metadata.","","","Get an embedded file and its metadata.","","","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Iterates over the file paths in the folder.","","Iterates over the file paths in the folder.","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Trait to clone MCDatabase","","","","","","","","","","","","","","","","clone DB","","","","","","","","","","fetch stats","fetch stats","fetch stats","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","record PoWConfig confirms","record PoWConfig confirms","record PoWConfig confirms","record PoWConfig fetches","record PoWConfig fetches","record PoWConfig fetches","record PoWConfig solves","record PoWConfig solves","record PoWConfig solves","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Returns the argument unchanged.","Returns the argument unchanged.","Calls U::from(self).","Calls U::from(self).","Calls U::from(self).","","","","","","widget services","render a client side widget for CAPTCHA verification","","","","","","","","","","","","","","","","","Returns the argument unchanged.","Calls U::from(self).","","","","","",""],"i":[0,0,0,0,0,0,0,0,0,0,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,9,10,11,12,13,14,15,16,17,18,19,19,0,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,20,19,19,20,0,19,0,20,19,0,11,12,13,14,15,16,17,18,0,0,0,11,12,13,14,15,16,17,18,0,0,11,12,13,14,15,16,17,18,20,0,0,19,0,19,0,20,19,19,0,0,20,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,11,12,13,14,15,16,17,18,0,0,0,0,0,0,21,21,21,21,0,21,0,0,0,0,21,0,0,21,21,21,21,0,0,0,22,23,22,23,22,23,22,23,0,22,23,0,23,22,23,22,23,22,23,0,0,0,0,22,23,0,22,23,22,23,22,23,22,23,0,22,22,23,24,24,0,24,24,24,0,0,24,24,24,24,0,0,25,26,27,25,26,27,25,25,25,25,0,25,25,26,27,25,26,27,26,27,25,0,0,25,25,26,27,25,26,27,25,26,27,25,26,27,0,0,28,29,30,28,29,30,29,29,28,29,29,29,28,28,29,30,28,29,30,28,29,29,30,29,0,29,28,29,30,28,29,30,28,29,30,0,0,28,29,30,0,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,31,32,33,32,33,32,33,0,32,33,32,33,0,32,33,32,33,32,33,0,32,33,0,34,35,36,34,35,36,35,35,35,35,34,35,36,34,35,36,34,36,0,35,0,0,35,34,35,36,34,35,36,34,35,36,35,0,34,35,36,0,37,38,39,37,38,39,37,38,39,37,38,39,0,0,37,38,39,0,0,0,0,37,38,39,37,38,39,37,38,39,37,38,39,0,40,40,40,40,40,40,40,40,40,40,40,40,40,0,0,0,41,42,43,41,42,43,41,42,43,41,42,43,41,41,42,43,41,41,42,43,41,42,43,41,42,43,42,0,41,42,43,0,41,42,43,41,42,43,41,42,43,41,42,43,41,42,43,41,41,42,43,0,0,0,0,0,0,0,0,0,0,0,44,45,46,44,45,46,45,45,0,44,44,45,44,45,44,45,46,44,45,46,45,44,45,46,0,44,45,45,44,45,46,44,45,46,44,45,46,44,45,46,0,0,47,48,47,48,47,47,0,47,47,47,48,47,48,47,47,48,47,47,47,48,47,48,47,48,47,48,0,0,49,49,50,51,52,49,50,51,52,49,0,49,51,49,51,0,49,49,49,51,49,51,49,50,51,52,49,50,51,52,51,51,49,50,52,0,49,51,0,49,51,49,50,51,52,49,50,51,52,49,50,51,52,0,49,50,51,52,0,53,53,53,53,53,53,53,53,53,53,53,0,0,54,55,56,54,55,56,55,56,55,56,55,56,56,55,56,54,55,56,0,54,55,56,55,54,55,56,55,56,54,55,56,54,55,56,54,55,56,56,54,55,56,0,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,57,0,58,59,58,59,58,58,58,58,58,59,0,58,59,58,59,0,58,58,58,59,58,59,58,59,58,59,0,60,60,60,60,60,60,60,60,60,60,0,61,62,63,61,62,63,62,62,62,61,62,63,61,62,63,62,62,61,63,0,62,61,62,63,61,62,63,61,62,63,0,0,61,62,63,0,0,0,0,0,0,0,64,65,64,65,66,67,64,68,69,70,65,71,66,67,64,68,69,70,65,71,67,70,0,66,67,69,70,66,67,69,70,67,70,70,69,70,67,70,66,69,66,64,64,69,65,65,66,67,64,64,64,68,69,70,65,65,65,71,67,66,67,0,66,67,64,68,69,70,65,71,69,70,69,70,68,71,0,66,69,0,66,67,69,70,64,65,66,67,64,68,69,70,65,71,66,67,64,68,69,70,65,71,66,67,64,68,69,70,65,71,67,66,67,66,67,64,68,69,70,65,71,72,73,74,75,0,76,76,76,76,76,76,76,76,76,76,76,0,0,0,0,0,0,0,77,78,77,78,77,77,77,77,77,77,77,78,77,77,78,77,77,78,77,77,77,77,78,77,78,77,78,77,78,0,79,80,79,80,79,79,79,79,79,79,79,80,79,0,79,79,79,80,79,79,79,79,80,79,79,79,80,79,80,79,80,79,80,0,81,82,81,82,81,81,82,81,81,82,0,82,81,81,82,81,82,81,82,81,82,0,83,83,83,83,83,83,83,83,83,83,83,83,0,0,0,0,0,0,0,84,85,84,85,84,84,84,84,84,85,0,0,84,85,84,85,84,84,84,85,84,85,84,85,84,85,0,86,86,86,86,86,86,86,0,86,86,86,86,86,86,86,86,86,0,87,88,87,88,87,87,87,87,87,88,87,88,88,87,87,87,87,88,87,88,87,88,0,87,88,0,89,90,89,90,89,89,89,89,89,90,89,90,90,89,89,89,90,89,90,89,90,89,0,89,90,0,0,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,91,0,92,0,92,0,92,92,20,92,20,20,20,20,0,0,92,20,20,20,92,92,20,20,92,20,92,92,92,20,20,92,20,92,20,92,20,92,92,92,20,93,94,0,0,0,0,0,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,95,0,0,0,96,96,96,96,96,96,96,96,96,96,96,96,96,96,0,0,0,97,98,99,100,97,98,99,100,0,97,98,99,100,97,97,0,0,97,98,99,100,97,97,98,99,100,0,0,0,97,98,99,100,97,98,99,100,97,98,99,100,97,98,99,100,0,101,101,101,101,101,101,101,101,101,101,101,101,0,0,0,102,102,102,102,102,102,102,102,102,102,102,102,102,0,102,102,103,104,105,105,105,105,105,105,0,105,0,105,106,105,105,0,0,105,105,105,105,0,106,0,0,105,105,105,105,105,105,105,103,104,105,107,106,103,104,105,107,106,107,103,104,105,106,107,105,106,103,103,104,104,105,105,106,106,103,104,105,105,105,105,105,105,105,105,105,107,106,106,106,103,104,105,107,106,105,106,107,103,104,105,106,105,106,103,104,105,106,103,104,105,107,106,103,104,105,107,106,103,104,105,107,106,103,104,105,107,106,108,109,110,111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,112,113,112,114,113,112,114,113,113,113,112,113,112,114,113,112,114,0,114,113,113,113,113,112,114,113,112,114,113,112,114,113,112,114,0,0,0,115,116,115,117,116,115,117,116,116,116,115,116,115,117,116,115,117,0,117,116,116,116,116,115,117,116,115,117,116,115,117,116,115,117,0,118,118,118,118,118,118,118,118,118,118,118,118,118,0,0,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,119,0,0,0,0,0,120,121,122,120,121,123,122,120,121,123,122,122,120,121,0,122,120,121,123,122,120,121,123,122,122,123,122,122,0,0,122,122,122,120,121,123,122,120,121,123,122,120,121,123,122,120,121,123,0,124,124,124,124,124,124,124,124,124,124,124,0,0,125,126,125,126,125,125,125,126,125,126,125,0,0,126,125,125,0,0,0,0,125,125,125,126,125,126,125,126,125,126,0,0,0,127,128,129,127,128,129,127,127,128,129,127,127,127,128,129,127,128,127,128,0,127,127,129,128,128,127,128,129,127,128,129,127,128,129,127,128,129,0,130,130,130,130,130,130,130,130,130,130,130,130,130,130,0,0,131,132,133,134,131,132,133,134,131,131,0,131,131,132,133,134,131,132,133,134,132,133,134,131,131,0,131,0,0,131,131,132,133,134,131,132,133,134,131,132,133,134,0,131,131,132,133,134,0,135,135,135,135,135,135,135,135,135,135,135,135,135,0,0,0,0,0,0,0,0,0,0,0,0,136,137,0,138,136,137,139,140,138,141,136,137,139,140,138,141,138,139,138,139,138,139,138,136,137,0,139,138,139,139,138,136,137,139,140,138,141,136,137,139,140,138,141,139,138,140,141,139,138,139,138,139,138,136,137,139,140,138,141,136,137,139,140,138,141,136,137,139,140,138,141,136,137,139,140,138,141,142,142,0,142,142,142,142,142,142,142,0,0,0,0,143,144,145,146,143,144,145,146,143,145,143,145,143,0,145,143,144,145,146,143,144,145,146,143,145,143,143,143,145,145,144,146,143,145,143,145,143,145,143,144,145,146,143,144,145,146,143,144,145,146,143,144,145,146,0,0,147,148,147,148,147,147,147,148,147,148,0,147,148,147,147,147,147,147,148,147,148,147,148,147,148,0,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,149,0,0,150,151,150,151,150,150,150,150,151,150,151,150,150,150,150,151,150,150,150,150,150,151,150,151,150,151,0,150,151,0,0,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,152,0,0,153,154,153,155,154,153,155,154,154,154,153,154,154,153,155,154,153,155,155,154,154,0,154,154,153,155,154,153,155,154,153,155,154,154,153,155,0,0,0,0,0,0,0,0,0,19,19,156,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,156,19,0,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,19,157,19,19,158,157,158,156,159,160,161,162,19,157,156,158,160,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,159,158,157,160,157,158,156,159,160,161,162,19,157,160,19,159,160,156,161,162,157,159,160,157,19,159,158,19,0,0,19,19,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,157,158,156,159,160,161,162,19,159,161,162,157,159,160,157,158,156,159,160,161,162,19,0,0,0,0,0,163,163,163,163,163,163,163,163,163,163,163,0,0,0,164,165,166,167,164,165,166,167,0,164,165,166,167,164,164,166,166,0,0,164,165,166,167,164,164,166,166,165,167,0,164,165,166,167,164,165,166,167,164,165,166,167,164,165,166,167,0,0,0,0,0,0,0,0,0,0,0,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,1,2,3,4,5,6,7,8,9,10,0,0,0,0,0,168,169,170,168,169,170,168,169,170,168,169,170,171,168,168,168,169,170,168,168,169,170,172,169,170,168,169,170,168,169,170,168,169,170,168,172,169,170,172,169,170,172,169,170,168,168,168,169,170,168,169,170,168,169,170,168,169,170,168,169,170,0,0,0,0,173,174,173,175,174,173,175,174,174,173,174,173,175,174,173,175,174,175,174,174,0,0,0,174,174,173,175,174,173,175,174,173,175,174,173,175,0,176,176,176,176,176,176,176,176,176,176],"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,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["settings",3]],[[["",0]],["filemap",3]],[[["",0]],["str",0]],[[["",0]],["str",0]],[[["",0]],["str",0]],[[["",0]],["str",0]],[[["",0]],["str",0]],[[["",0]],["string",3]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["settings",3]],["identityservice",3,[["cookieidentitypolicy",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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[],["result",4]],[[]],[[],["authentication",3,[["routes",3]]]],[[]],null,null,null,null,null,null,[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["accountcheckpayload",3]],[[["",0]],["accountcheckresp",3]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[],["result",4]],[[],["result",4]],null,null,[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,null,null,null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[["appservice",3]]],null,[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],[[["str",0],["appdata",6]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["email",3]],[[["",0],["",0]]],[[],["result",4]],null,null,[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],[[["",0]],["result",4]],[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["changepasswordreqest",3]],[[["",0],["",0]]],null,null,[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[["changepasswordreqest",3]]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[["appservice",3]]],[[["",0]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["str",0],["updatepassword",3],["data",3]]],null,[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[]],null,[[]],[[],["account",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,null,null,null,[[]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],null,[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],[[["serviceconfig",3]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["username",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],null,[[["",0]],["result",4]],[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],[[]],[[["accountcheckpayload",3],["appdata",6]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[]],[[]],[[]],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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0],["option",4,[["str",0]]]],["string",3]],[[]],null,null,[[],["auth",3]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["register",3]],[[["",0]],["login",3]],[[["",0]],["password",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],null,[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["login",3],["appdata",6]]],null,null,null,[[["register",3],["appdata",6]]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],null,null,null,null,[[["usize",0]],["string",3]],null,[[["serviceconfig",3]]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["mcaptchadetails",3]],[[["",0],["",0]]],null,null,[[],["result",4]],[[],["result",4]],null,[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[["appservice",3]]],null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[["createcaptcha",3],["appdata",6],["str",0]]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["deletecaptcha",3]],[[["",0],["",0]]],null,[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],null,null,[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["trafficpattern",3],["defaultdifficultystrategy",3]],["result",4,[["vec",3,[["level",3]]],["serviceerror",4]]]],[[["",0]],["trafficpatternrequest",3]],[[["",0]],["updatetrafficpattern",3]],[[["",0],["",0]]],[[["",0],["",0]]],null,[[],["trafficpatternrequest",3]],null,[[],["result",4]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,[[["appservice",3]]],[[["appservice",3]]],null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["levels",3]],[[["",0]],["i32levels",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[],["result",4]],[[],["result",4]],null,[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],null,[[]],[[]],[[]],null,[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]],["result",4]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,null,[[]],null,[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,null,[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["statspayload",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[]],null,[[["appservice",3]]],null,[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[],["result",4]],null,[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["appservice",3]]],[[["appservice",3]]],null,[[["",0]],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],[[]],[[["updatecaptcha",3],["appdata",6],["str",0]]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["result",4,[["builddetails",3],["builddetailsbuildererror",4]]]],[[["",0]],["result",4,[["health",3],["healthbuildererror",4]]]],null,[[["",0]],["builddetails",3]],[[["",0]],["builddetailsbuilder",3]],[[["",0]],["health",3]],[[["",0]],["healthbuilder",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[]],[[]],[[["",0],["bool",0]],["",0]],null,null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["string",3]]],[[["uninitializedfielderror",3]]],[[]],[[]],[[]],[[]],[[["string",3]]],[[["uninitializedfielderror",3]]],[[]],[[]],[[["",0],["str",0]],["",0]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["option",4]],["bool",0]],[[["",0],["option",4,[["bool",0]]]],["",0]],null,null,[[["appservice",3]]],[[["appservice",3]]],null,[[["",0]],["result",4]],[[["",0]],["result",4]],[[["serviceconfig",3]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]],["string",3]],[[["",0]],["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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["str",0]],["",0]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,[[["serviceconfig",3]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["addnotificationrequest",3]],[[["",0],["",0]]],[[],["addnotificationrequest",3]],[[],["result",4]],[[["",0],["addnotificationrequest",3]],["bool",0]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,[[]],[[]],null,[[["",0],["addnotificationrequest",3]],["bool",0]],[[["appservice",3]]],[[["",0]],["result",4]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["notificationresp",3]],[[["",0],["",0]]],[[],["notificationresp",3]],[[],["result",4]],[[["",0],["notificationresp",3]],["bool",0]],[[["notification",3]]],[[]],[[]],[[["vec",3,[["notification",3]]]],["vec",3]],null,null,null,[[]],[[]],null,null,[[["",0],["notificationresp",3]],["bool",0]],null,[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[],["result",4]],[[]],[[]],null,[[]],[[]],null,[[["appservice",3]]],[[["",0]],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],null,[[],["notifications",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["serviceconfig",3]]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["getconfigpayload",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],null,[[["appdata",6],["str",0]]],[[]],[[]],null,[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0]],["str",0]],null,[[]],[[]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["str",0]],null,[[["",0]],["str",0]],null,[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["validationtoken",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["captchavalidateresp",3]],[[["",0],["",0]]],[[],["result",4]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["",0]],["result",4]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[["",0],["option",4,[["str",0]]]],["string",3]],[[]],null,[[],["routes",3]],null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,null,[[["",0],["addsite",3]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,null,null,null,[[]],[[]],[[],["config",3]],[[["settings",3]],["option",4,[["asyncsmtptransport",3,[["tokio1executor",3]]]]]],[[["",0],["string",3]]],[[]],[[]],null,[[["settings",3]]],[[["settings",3]]],[[["settings",3],["addr",3,[["mastertrait",8]]],["addr",3,[["save",8]]]],["system",3,[["save",8],["mastertrait",8]]]],[[["",0],["removecaptcha",3]]],[[["",0],["rename",3]]],null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0],["verifycaptcharesult",3]]],[[["",0],["work",3]]],[[]],[[]],null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["date",3]],[[["",0],["",0]]],[[["",0]],["string",3]],[[["",0],["formatter",3]],["result",6]],[[["offsetdatetime",3]],["string",3]],[[]],[[]],[[["i64",0]]],[[["",0]],["string",3]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]]],[[["",0]],["",0]],[[["",0]],["",0]],[[["appdata",6]]],[[]],null,[[]],[[["appdata",6]]],[[["appdata",6],["duration",3]]],[[["appdata",6],["duration",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[]],[[]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["httpresponse",3]],null,[[]],[[]],[[]],[[]],[[]],[[],["filenames",4]],[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],null,[[["serviceconfig",3]]],null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],[[]],null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[]],[[["str",0]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["data",3],["str",0],["str",0]]],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,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[],["result",4]],[[["",0],["",0]],["bool",0]],[[["",0],["",0]],["bool",0]],[[["",0],["serviceerror",4]],["bool",0]],[[["",0],["pageerror",4]],["bool",0]],null,[[["",0]],["httpresponse",3]],[[["",0]],["httpresponse",3]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[["smtperror",3]]],[[["recverror",3]]],[[]],[[["mailboxerror",4]]],[[["parseerror",4]],["serviceerror",4]],[[["dberror",4]],["serviceerror",4]],[[["captchaerror",4]],["serviceerror",4]],[[["validationerrors",3]],["serviceerror",4]],[[["credserror",4]],["serviceerror",4]],[[]],[[["dberror",4]]],[[]],[[["serviceerror",4]]],[[]],[[]],[[]],[[]],[[]],[[["",0],["serviceerror",4]],["bool",0]],[[["",0],["pageerror",4]],["bool",0]],[[["",0]],["result",4]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["option",4,[["error",8]]]],[[["",0]],["statuscode",3]],[[["",0]],["statuscode",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[["",0]],["string",3]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,[[],["authentication",3,[["routes",3]]]],null,null,[[["serviceconfig",3]]],null,null,null,null,[[["serviceconfig",3]]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[["",0]],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[["",0]],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[["",0],["option",4,[["str",0]]]],["string",3]],[[]],[[]],null,null,[[],["auth",3]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["sudopage",3]],[[["",0],["",0]]],null,[[]],[[]],[[["str",0],["option",4,[["vec",3]]]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["errorpage",3]],[[["",0],["",0]]],[[["",0]],["string",3]],[[["",0]],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,[[["str",0],["str",0]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[]],[[]],[[]],[[["vec",3,[["captcha",3]]]]],null,null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["serviceconfig",3]]],null,null,null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["notification",3]]],[[]],[[]],[[]],null,null,[[]],[[]],[[]],null,null,null,[[["vec",3,[["notification",3]]]]],null,[[["",0]],["string",3]],null,[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],null,[[]],[[]],null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[["appservice",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,null,[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,[[]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],null,[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,null,null,null,[[["serviceconfig",3]]],null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[["",0]],["advanceindexpage",3]],[[["",0]],["easyindexpage",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[]],[[]],[[["",0]],["string",3]],[[["",0]],["string",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["appservice",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[["appservice",3]]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["advanceeditpage",3]],[[["",0]],["easyeditpage",3]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,[[["captcha",3],["vec",3,[["level",3]]],["string",3]]],[[["string",3],["trafficpatternrequest",3]]],null,[[["appservice",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["buffer",3]],["result",4,[["rendererror",4]]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[]],[[]],[[]],null,[[["vec",3,[["captcha",3]]]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,null,[[]],[[["",0],["str",0]],["string",3]],[[["",0],["str",0]],["string",3]],[[["",0],["str",0]],["string",3]],[[]],[[["",0],["str",0]],["string",3]],[[]],null,[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],null,[[]],[[]],[[]],[[]],null,null,null,[[["captchastats",3],["captcha",3],["vec",3,[["level",3]]],["string",3]]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[]],[[["",0],["option",4,[["str",0]]]],["string",3]],[[]],null,[[]],[[],["routes",3]],null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[]],[[["",0]],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,[[]],[[]],[[]],[[["serviceconfig",3]]],null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,null,[[["config",3]]],[[["",0]],["server",3]],[[["",0]],["captcha",3]],[[["",0]],["defaultdifficultystrategy",3]],[[["",0]],["smtp",3]],[[["",0]],["databasebuilder",3]],[[["",0]],["database",3]],[[["",0]],["redis",3]],[[["",0]],["settings",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],null,null,null,null,null,[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],null,null,null,[[["url",3]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["",0]],["string",3]],null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[],["result",4,[["configerror",4]]]],null,null,null,null,null,null,null,null,null,null,null,null,null,[[["config",3]]],[[["config",3],["databasebuilder",3]]],null,null,[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[],["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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],null,null,null,null,null,null,[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,[[["serviceconfig",3]]],null,null,[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[["",0],["str",0]],["option",4,[["str",0]]]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[]],null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],null,[[]],[[]],[[]],[[]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["option",4,[["embeddedfile",3]]]],[[["str",0]],["httpresponse",3]],[[["str",0]],["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]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[["",0]]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[],["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]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["captchastats",3]],[[["",0]],["real",3]],[[["",0]],["dummy",3]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0],["",0]]],[[["",0]],["box",3,[["stats",8]]]],null,null,[[],["captchastats",3]],[[],["real",3]],[[],["dummy",3]],[[],["result",4]],[[["",0],["captchastats",3]],["bool",0]],[[["",0],["real",3]],["bool",0]],[[["",0],["dummy",3]],["bool",0]],[[["",0],["data",3],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[["",0],["formatter",3]],["result",6]],[[]],[[]],[[]],[[]],[[]],[[]],[[["",0],["captchastats",3]],["bool",0]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0],["data",3],["str",0]],["pin",3,[["box",3,[["future",8]]]]]],[[["",0]],["result",4]],null,[[["",0]]],[[["",0]]],[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,null,null,null,null,[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["",0]],[[["",0]],["indexpage",3]],[[["",0],["",0]]],[[["",0]],["string",3]],[[]],[[]],[[]],[[]],[[]],[[]],[[]],[[["appservice",3]]],[[],["renderresult",6]],[[["buffer",3]],["result",4,[["rendererror",4]]]],null,[[["serviceconfig",3]]],null,[[["",0]]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[["",0]],["typeid",3]],[[]],[[]],[[]],null,[[["",0]],["",0]],[[["",0]],["",0]],[[]],[[]],[[]],[[],["result",4]],[[],["result",4]],[[["",0]],["typeid",3]],null,[[]]],"p":[[3,"KEY"],[3,"GITHUB"],[3,"HOME"],[3,"SETTINGS_ICON"],[3,"CREDIT_CARD"],[3,"HELP_CIRCLE"],[3,"MESSAGE"],[3,"DOCS_ICON"],[3,"MCAPTCHA_TRANS_ICON"],[3,"BAR_CHART"],[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,"Settings"],[3,"Data"],[3,"RedirectQuery"],[3,"AccountCheckPayload"],[3,"AccountCheckResp"],[3,"delete_account"],[3,"Email"],[3,"email_exists"],[3,"set_email"],[3,"UpdatePassword"],[3,"ChangePasswordReqest"],[3,"update_user_password"],[3,"Account"],[3,"get_secret"],[3,"update_user_secret"],[3,"username_exists"],[3,"Username"],[3,"set_username"],[3,"register"],[3,"login"],[3,"signout"],[3,"Auth"],[3,"Register"],[3,"Login"],[3,"Password"],[3,"CreateCaptcha"],[3,"MCaptchaDetails"],[3,"create"],[3,"DeleteCaptcha"],[3,"delete"],[3,"TrafficPatternRequest"],[3,"create"],[3,"UpdateTrafficPattern"],[3,"update"],[3,"Easy"],[3,"get_captcha"],[3,"Levels"],[3,"I32Levels"],[3,"Captcha"],[3,"StatsPayload"],[3,"get"],[3,"Stats"],[3,"update_key"],[3,"UpdateCaptcha"],[3,"update_captcha"],[4,"BuildDetailsBuilderError"],[4,"HealthBuilderError"],[3,"BuildDetails"],[3,"BuildDetailsBuilder"],[3,"build_details"],[3,"Health"],[3,"HealthBuilder"],[3,"health"],[13,"UninitializedField"],[13,"ValidationError"],[13,"UninitializedField"],[13,"ValidationError"],[3,"Meta"],[3,"AddNotificationRequest"],[3,"add_notification"],[3,"NotificationResp"],[3,"get_notification"],[3,"MarkReadReq"],[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"],[13,"Embedded"],[13,"Redis"],[3,"Date"],[3,"DemoUser"],[3,"Asset"],[3,"dist"],[3,"spec"],[3,"index"],[3,"Docs"],[3,"IndexPage"],[3,"SmtpErrorWrapper"],[3,"DBErrorWrapper"],[4,"ServiceError"],[4,"PageError"],[3,"ErrorToResponse"],[13,"ServiceError"],[13,"UnableToSendEmail"],[13,"CaptchaError"],[13,"DBError"],[3,"INDEX"],[3,"IndexPage"],[3,"login"],[3,"INDEX"],[3,"IndexPage"],[3,"join"],[3,"Auth"],[3,"SudoPage"],[3,"INTERNAL_SERVER_ERROR_BODY"],[3,"UNKNOWN_ERROR_BODY"],[3,"ErrorPage"],[3,"error"],[3,"Errors"],[3,"IndexPage"],[3,"panel"],[3,"Notification"],[3,"IndexPage"],[3,"notifications"],[3,"Panel"],[3,"IndexPage"],[3,"settings"],[3,"delete_account"],[3,"update_secret"],[3,"Settings"],[3,"ADVANCE_INDEX"],[3,"EASY_INDEX"],[3,"EasyIndexPage"],[3,"AdvanceIndexPage"],[3,"advance"],[3,"easy"],[3,"delete_sitekey"],[3,"AdvanceEditPage"],[3,"advance"],[3,"EasyEditPage"],[3,"easy"],[3,"IndexPage"],[3,"list_sitekeys"],[3,"Sitekey"],[3,"IndexPage"],[3,"view_sitekey"],[3,"Routes"],[3,"INDEX"],[3,"IndexPage"],[3,"sitemap"],[3,"DefaultDifficultyStrategy"],[3,"Server"],[3,"Captcha"],[3,"Smtp"],[3,"DatabaseBuilder"],[3,"Database"],[3,"Redis"],[3,"FileMap"],[3,"Asset"],[3,"static_files"],[3,"Favicons"],[3,"favicons"],[3,"CaptchaStats"],[3,"Real"],[3,"Dummy"],[8,"CloneStats"],[8,"Stats"],[3,"INDEX_PAGE"],[3,"IndexPage"],[3,"show_widget"],[3,"Widget"]]}\ }'); if (window.initSearch) {window.initSearch(searchIndex)}; \ No newline at end of file diff --git a/search.js b/search.js index a8026db5..860a5957 100644 --- a/search.js +++ b/search.js @@ -1,2 +1 @@ -(function(){var itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];var TY_PRIMITIVE=itemTypes.indexOf("primitive");var TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){if(nb===0||nb===1||nb===2){searchState.currentTab=nb}var nb_copy=nb;onEachLazy(document.getElementById("titles").childNodes,function(elem){if(nb_copy===0){addClass(elem,"selected")}else{removeClass(elem,"selected")}nb_copy-=1});onEachLazy(document.getElementById("results").childNodes,function(elem){if(nb===0){addClass(elem,"active")}else{removeClass(elem,"active")}nb-=1})}function removeEmptyStringsFromArray(x){for(var i=0,len=x.length;i-1){var obj=searchIndex[result.id];obj.lev=result.lev;var res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates[obj.fullPath]){continue}duplicates[obj.fullPath]=true;obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType){var ar=[];for(var entry in results){if(hasOwnPropertyRustdoc(results,entry)){var result=results[entry];result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};ar.push(result)}}results=ar;if(results.length===0){return[]}results.sort(function(aaa,bbb){var a,b;a=(aaa.word!==val);b=(bbb.word!==val);if(a!==b){return a-b}a=(aaa.lev);b=(bbb.lev);if(a!==b){return a-b}a=(aaa.item.crate!==window.currentCrate);b=(bbb.item.crate!==window.currentCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});for(var i=0,len=results.length;i"));return{name:val.substring(0,val.indexOf("<")),generics:values.split(/\s*,\s*/),}}return{name:val,generics:[],}}function checkGenerics(obj,val){var tmp_lev,elem_name;if(val.generics.length>0){if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>=val.generics.length){var elems=Object.create(null);var elength=obj[GENERICS_DATA].length;for(var x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length>0){var elems=Object.create(null);len=obj[GENERICS_DATA].length;for(x=0;xGENERICS_DATA&&obj[GENERICS_DATA].length!==0){tmp_lev=checkGenerics(obj,val);if(tmp_lev<=MAX_LEV_DISTANCE){return tmp_lev}}}}else if(literalSearch){var found=false;if((!val.generics||val.generics.length===0)&&obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){found=obj[GENERICS_DATA].some(function(gen){return gen[NAME]===val.name})}return found?0:MAX_LEV_DISTANCE+1}lev_distance=Math.min(levenshtein(obj[NAME],val.name),lev_distance);if(lev_distance<=MAX_LEV_DISTANCE){lev_distance=Math.ceil((checkGenerics(obj,val)+lev_distance)/2)}if(obj.length>GENERICS_DATA&&obj[GENERICS_DATA].length>0){var olength=obj[GENERICS_DATA].length;for(x=0;x0){var length=obj.type[INPUTS_DATA].length;for(var i=0;iOUTPUT_DATA){var ret=obj.type[OUTPUT_DATA];if(typeof ret[0]==="string"){ret=[ret]}for(var x=0,len=ret.length;xlength){return MAX_LEV_DISTANCE+1}for(var i=0;ilength){break}var lev_total=0;var aborted=false;for(var x=0;xMAX_LEV_DISTANCE){aborted=true;break}lev_total+=lev}if(!aborted){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;var name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,}}function handleAliases(ret,query,filterCrates){var aliases=[];var crateAliases=[];if(filterCrates!==null){if(ALIASES[filterCrates]&&ALIASES[filterCrates][query.search]){var query_aliases=ALIASES[filterCrates][query.search];var len=query_aliases.length;for(var i=0;iMAX_RESULTS){ret.others.pop()}};onEach(aliases,pushFunc);onEach(crateAliases,pushFunc)}function addIntoResults(isExact,res,fullId,id,index,lev){if(lev===0||(!isExact&&lev<=MAX_LEV_DISTANCE)){if(res[fullId]!==undefined){var result=res[fullId];if(result.dontValidate||result.lev<=lev){return}}res[fullId]={id:id,index:index,dontValidate:isExact,lev:lev,}}}var nSearchWords=searchWords.length;var i,it;var ty;var fullId;var returned;var in_args;var len;if((val.charAt(0)==="\""||val.charAt(0)==="'")&&val.charAt(val.length-1)===val.charAt(0)){val=extractGenerics(val.substr(1,val.length-2));for(i=0;i")>-1){var trimmer=function(s){return s.trim()};var parts=val.split("->").map(trimmer);var input=parts[0];var inputs=input.split(",").map(trimmer).sort();for(i=0,len=inputs.length;i0){firstNonZeroDistance=distance;break}}in_args=firstNonZeroDistance}addIntoResults(true,results_in_args,fullId,i,-1,in_args);addIntoResults(true,results_returned,fullId,i,-1,returned);if(is_module){addIntoResults(true,results,fullId,i,-1,0)}}}query.inputs=inputs.map(function(input){return input.name});query.output=output.name}else{query.inputs=[val];query.output=val;query.search=val;val=val.replace(/_/g,"");var valGenerics=extractGenerics(val);var paths=valLower.split("::");removeEmptyStringsFromArray(paths);val=paths[paths.length-1];var contains=paths.slice(0,paths.length>1?paths.length-1:1);var lev,j;for(j=0;j1){lev=checkPath(contains,paths[paths.length-1],ty);if(lev>MAX_LEV_DISTANCE){continue}else if(lev>0){lev_add=lev/10}}returned=MAX_LEV_DISTANCE+1;in_args=MAX_LEV_DISTANCE+1;var index=-1;lev=MAX_LEV_DISTANCE+1;fullId=ty.id;if(searchWords[j].indexOf(split[i])>-1||searchWords[j].indexOf(val)>-1||ty.normalizedName.indexOf(val)>-1){if(typePassesFilter(typeFilter,ty.ty)&&results[fullId]===undefined){index=ty.normalizedName.indexOf(val)}}if((lev=levenshtein(searchWords[j],val))<=MAX_LEV_DISTANCE){if(typePassesFilter(typeFilter,ty.ty)){lev+=1}else{lev=MAX_LEV_DISTANCE+1}}in_args=findArg(ty,valGenerics,false,typeFilter);returned=checkReturned(ty,valGenerics,false,typeFilter);lev+=lev_add;if(lev>0&&val.length>3&&searchWords[j].indexOf(val)>-1){if(val.length<6){lev-=1}else{lev=0}}addIntoResults(false,results_in_args,fullId,j,index,in_args);addIntoResults(false,results_returned,fullId,j,index,returned);if(typePassesFilter(typeFilter,ty.ty)&&(index!==-1||lev<=MAX_LEV_DISTANCE)){if(index!==-1&&paths.length<2){lev=0}addIntoResults(false,results,fullId,j,index,lev)}}}var ret={"in_args":sortResults(results_in_args,true),"returned":sortResults(results_returned,true),"others":sortResults(results,false),};handleAliases(ret,query,filterCrates);return ret}function validateResult(name,path,keys,parent){for(var i=0,len=keys.length;i-1||path.indexOf(keys[i])>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(keys[i])>-1)||levenshtein(name,keys[i])<=MAX_LEV_DISTANCE)){return false}}return true}function getQuery(raw){var matches,type="",query;query=raw;matches=query.match(/^(fn|mod|struct|enum|trait|type|const|macro)\s*:\s*/i);if(matches){type=matches[1].replace(/^const$/,"constant");query=query.substring(matches[0].length)}return{raw:raw,query:query,type:type,id:query+type}}function nextTab(direction){var next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){var target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#titles > button").item(searchState.currentTab);if(target){target.focus()}}function buildHrefAndPath(item){var displayPath;var href;var type=itemTypes[item.ty];var name=item.name;var path=item.path;if(type==="mod"){displayPath=path+"::";href=window.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="primitive"||type==="keyword"){displayPath="";href=window.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=window.rootPath+name+"/index.html"}else if(item.parent!==undefined){var myparent=item.parent;var anchor="#"+type+"."+name;var parentType=itemTypes[myparent.ty];var pageType=parentType;var pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){var enumNameIdx=item.path.lastIndexOf("::");var enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=window.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=window.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function escape(content){var h1=document.createElement("h1");h1.textContent=content;return h1.innerHTML}function pathSplitter(path){var tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){var extraClass="";if(display===true){extraClass=" active"}var output=document.createElement("div");var length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(function(item){var name=item.name;var type=itemTypes[item.ty];length+=1;var extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}var link=document.createElement("a");link.className="result-"+type;link.href=item.href;var wrapper=document.createElement("div");var resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){var alias=document.createElement("span");alias.className="alias";var bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");wrapper.appendChild(resultName);var description=document.createElement("div");description.className="desc";var spanDesc=document.createElement("span");spanDesc.insertAdjacentHTML("beforeend",item.desc);description.appendChild(spanDesc);wrapper.appendChild(description);link.appendChild(wrapper);output.appendChild(link)})}else{output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){var search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true"&&(!search.firstChild||search.firstChild.innerText!==searchState.loadingText))){var elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}var query=getQuery(searchState.input.value);currentResults=query.id;var ret_others=addTab(results.others,query,true);var ret_in_args=addTab(results.in_args,query,false);var ret_returned=addTab(results.returned,query,false);var currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(window.ALL_CRATES.length>1){crates=` in `}var output=`
-

Results for ${escape(query.query)} `+(query.type?" (type: "+escape(query.type)+")":"")+"

"+crates+`
`+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
";var resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;let crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.focusedByTab=[null,null,null];searchState.showResults(search);var elems=document.getElementById("titles").childNodes;elems[0].onclick=function(){printTab(0)};elems[1].onclick=function(){printTab(1)};elems[2].onclick=function(){printTab(2)};printTab(currentTab)}function execSearch(query,searchWords,filterCrates){query=query.raw.trim();var results={"in_args":[],"returned":[],"others":[],};if(query.length!==0){var tmp=execQuery(getQuery(query),searchWords,filterCrates);results.in_args.push(tmp.in_args);results.returned.push(tmp.returned);results.others.push(tmp.others)}return{"in_args":results.in_args[0],"returned":results.returned[0],"others":results.others[0],}}function search(e,forced){var params=searchState.getQueryStringParams();var query=getQuery(searchState.input.value.trim());if(e){e.preventDefault()}if(query.query.length===0){return}if(!forced&&query.id===currentResults){if(query.query.length>0){putBackSearch()}return}var filterCrates=getFilterCrates();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.query+" - Rust";if(searchState.browserSupportsHistoryApi()){var newURL=buildUrl(query.raw,filterCrates);if(!history.state&&!params.search){history.pushState(null,"",newURL)}else{history.replaceState(null,"",newURL)}}showResults(execSearch(query,searchWords,filterCrates),params["go_to_first"],filterCrates)}function buildIndex(rawSearchIndex){searchIndex=[];var searchWords=[];var i,word;var currentIndex=0;var id=0;for(var crate in rawSearchIndex){if(!hasOwnPropertyRustdoc(rawSearchIndex,crate)){continue}var crateSize=0;var crateCorpus=rawSearchIndex[crate];searchWords.push(crate);var crateRow={crate:crate,ty:1,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),};id+=1;searchIndex.push(crateRow);currentIndex+=1;var itemTypes=crateCorpus.t;var itemNames=crateCorpus.n;var itemPaths=crateCorpus.q;var itemDescs=crateCorpus.d;var itemParentIdxs=crateCorpus.i;var itemFunctionSearchTypes=crateCorpus.f;var paths=crateCorpus.p;var aliases=crateCorpus.a;var len=paths.length;for(i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:itemFunctionSearchTypes[i],id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){ALIASES[crate]={};var j,local_aliases;for(var alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}if(!hasOwnPropertyRustdoc(ALIASES[crate],alias_name)){ALIASES[crate][alias_name]=[]}local_aliases=aliases[alias_name];for(j=0,len=local_aliases.length;j0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=function(){var qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="All crates"){var params=searchState.getQueryStringParams();var query=searchState.input.value.trim();if(!history.state&&!params.search){history.pushState(null,"",buildUrl(query,null))}else{history.replaceState(null,"",buildUrl(query,null))}}currentResults=null;search(undefined,true)}searchWords=buildIndex(rawSearchIndex);registerSearchEvents();function runSearchIfNeeded(){if(searchState.getQueryStringParams().search){search()}}runSearchIfNeeded()};if(window.searchIndex!==undefined){initSearch(window.searchIndex)}})() \ No newline at end of file +"use strict";(function(){const itemTypes=["mod","externcrate","import","struct","enum","fn","type","static","trait","impl","tymethod","method","structfield","variant","macro","primitive","associatedtype","constant","associatedconstant","union","foreigntype","keyword","existential","attr","derive","traitalias",];const TY_PRIMITIVE=itemTypes.indexOf("primitive");const TY_KEYWORD=itemTypes.indexOf("keyword");function printTab(nb){let iter=0;let foundCurrentTab=false;let foundCurrentResultSet=false;onEachLazy(document.getElementById("titles").childNodes,elem=>{if(nb===iter){addClass(elem,"selected");foundCurrentTab=true}else{removeClass(elem,"selected")}iter+=1});iter=0;onEachLazy(document.getElementById("results").childNodes,elem=>{if(nb===iter){addClass(elem,"active");foundCurrentResultSet=true}else{removeClass(elem,"active")}iter+=1});if(foundCurrentTab&&foundCurrentResultSet){searchState.currentTab=nb}else if(nb!=0){printTab(0)}}const levenshtein_row2=[];function levenshtein(s1,s2){if(s1===s2){return 0}const s1_len=s1.length,s2_len=s2.length;if(s1_len&&s2_len){let i1=0,i2=0,a,b,c,c2;const row=levenshtein_row2;while(i1{const MAX_LEV_DISTANCE=3;const MAX_RESULTS=200;const GENERICS_DATA=2;const NAME=0;const INPUTS_DATA=0;const OUTPUT_DATA=1;const NO_TYPE_FILTER=-1;let searchIndex;let currentResults;const ALIASES=Object.create(null);const params=searchState.getQueryStringParams();if(searchState.input.value===""){searchState.input.value=params.search||""}function isWhitespace(c){return" \t\n\r".indexOf(c)!==-1}function isSpecialStartCharacter(c){return"<\"".indexOf(c)!==-1}function isEndCharacter(c){return",>-".indexOf(c)!==-1}function isStopCharacter(c){return isWhitespace(c)||isEndCharacter(c)}function isErrorCharacter(c){return"()".indexOf(c)!==-1}function itemTypeFromName(typename){for(let i=0,len=itemTypes.length;i0){throw new Error("Cannot use literal search when there is more than one element")}parserState.pos+=1;const start=parserState.pos;const end=getIdentEndPosition(parserState);if(parserState.pos>=parserState.length){throw new Error("Unclosed `\"`")}else if(parserState.userQuery[end]!=="\""){throw new Error(`Unexpected \`${parserState.userQuery[end]}\` in a string element`)}else if(start===end){throw new Error("Cannot have empty string element")}parserState.pos+=1;query.literalSearch=true}function isPathStart(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)=="::"}function isReturnArrow(parserState){return parserState.userQuery.slice(parserState.pos,parserState.pos+2)=="->"}function isIdentCharacter(c){return(c==="_"||(c>="0"&&c<="9")||(c>="a"&&c<="z")||(c>="A"&&c<="Z"))}function isSeparatorCharacter(c){return c===","||isWhitespaceCharacter(c)}function isWhitespaceCharacter(c){return c===" "||c==="\t"}function createQueryElement(query,parserState,name,generics,isInGenerics){if(name==="*"||(name.length===0&&generics.length===0)){return}if(query.literalSearch&&parserState.totalElems-parserState.genericsElems>0){throw new Error("You cannot have more than one element if you use quotes")}const pathSegments=name.split("::");if(pathSegments.length>1){for(let i=0,len=pathSegments.length;i=end){throw new Error("Found generics without a path")}parserState.pos+=1;getItemsBefore(query,parserState,generics,">")}if(start>=end&&generics.length===0){return}elems.push(createQueryElement(query,parserState,parserState.userQuery.slice(start,end),generics,isInGenerics))}function getItemsBefore(query,parserState,elems,endChar){let foundStopChar=true;while(parserState.pos"){extra="`<`"}else if(endChar===""){extra="`->`"}throw new Error("Unexpected `"+c+"` after "+extra)}if(!foundStopChar){if(endChar!==""){throw new Error(`Expected \`,\`, \` \` or \`${endChar}\`, found \`${c}\``)}throw new Error(`Expected \`,\` or \` \`, found \`${c}\``)}const posBefore=parserState.pos;getNextElem(query,parserState,elems,endChar===">");if(posBefore===parserState.pos){parserState.pos+=1}foundStopChar=false}parserState.pos+=1}function checkExtraTypeFilterCharacters(parserState){const query=parserState.userQuery;for(let pos=0;pos"){if(isReturnArrow(parserState)){break}throw new Error(`Unexpected \`${c}\` (did you mean \`->\`?)`)}throw new Error(`Unexpected \`${c}\``)}else if(c===":"&&!isPathStart(parserState)){if(parserState.typeFilter!==null){throw new Error("Unexpected `:`")}if(query.elems.length===0){throw new Error("Expected type filter before `:`")}else if(query.elems.length!==1||parserState.totalElems!==1){throw new Error("Unexpected `:`")}else if(query.literalSearch){throw new Error("You cannot use quotes on type filter")}checkExtraTypeFilterCharacters(parserState);parserState.typeFilter=query.elems.pop().name;parserState.pos+=1;parserState.totalElems=0;query.literalSearch=false;foundStopChar=true;continue}if(!foundStopChar){if(parserState.typeFilter!==null){throw new Error(`Expected \`,\`, \` \` or \`->\`, found \`${c}\``)}throw new Error(`Expected \`,\`, \` \`, \`:\` or \`->\`, found \`${c}\``)}before=query.elems.length;getNextElem(query,parserState,query.elems,false);if(query.elems.length===before){parserState.pos+=1}foundStopChar=false}while(parserState.pos`")}break}else{parserState.pos+=1}}}function newParsedQuery(userQuery){return{original:userQuery,userQuery:userQuery.toLowerCase(),typeFilter:NO_TYPE_FILTER,elems:[],returned:[],foundElems:0,literalSearch:false,error:null,}}function buildUrl(search,filterCrates){let extra="?search="+encodeURIComponent(search);if(filterCrates!==null){extra+="&filter-crate="+encodeURIComponent(filterCrates)}return getNakedUrl()+extra+window.location.hash}function getFilterCrates(){const elem=document.getElementById("crate-search");if(elem&&elem.value!=="All crates"&&hasOwnPropertyRustdoc(rawSearchIndex,elem.value)){return elem.value}return null}function parseQuery(userQuery){userQuery=userQuery.trim();const parserState={length:userQuery.length,pos:0,totalElems:0,genericsElems:0,typeFilter:null,userQuery:userQuery.toLowerCase(),};let query=newParsedQuery(userQuery);try{parseInput(query,parserState);if(parserState.typeFilter!==null){let typeFilter=parserState.typeFilter;if(typeFilter==="const"){typeFilter="constant"}query.typeFilter=itemTypeFromName(typeFilter)}}catch(err){query=newParsedQuery(userQuery);query.error=err.message;query.typeFilter=-1;return query}if(!query.literalSearch){query.literalSearch=parserState.totalElems>1}query.foundElems=query.elems.length+query.returned.length;return query}function createQueryResults(results_in_args,results_returned,results_others,parsedQuery){return{"in_args":results_in_args,"returned":results_returned,"others":results_others,"query":parsedQuery,}}function execQuery(parsedQuery,searchWords,filterCrates){const results_others={},results_in_args={},results_returned={};function transformResults(results){const duplicates={};const out=[];for(const result of results){if(result.id>-1){const obj=searchIndex[result.id];obj.lev=result.lev;const res=buildHrefAndPath(obj);obj.displayPath=pathSplitter(res[0]);obj.fullPath=obj.displayPath+obj.name;obj.fullPath+="|"+obj.ty;if(duplicates[obj.fullPath]){continue}duplicates[obj.fullPath]=true;obj.href=res[1];out.push(obj);if(out.length>=MAX_RESULTS){break}}}return out}function sortResults(results,isType){const userQuery=parsedQuery.userQuery;const ar=[];for(const entry in results){if(hasOwnPropertyRustdoc(results,entry)){const result=results[entry];result.word=searchWords[result.id];result.item=searchIndex[result.id]||{};ar.push(result)}}results=ar;if(results.length===0){return[]}results.sort((aaa,bbb)=>{let a,b;a=(aaa.word!==userQuery);b=(bbb.word!==userQuery);if(a!==b){return a-b}a=(aaa.lev);b=(bbb.lev);if(a!==b){return a-b}a=(aaa.item.crate!==window.currentCrate);b=(bbb.item.crate!==window.currentCrate);if(a!==b){return a-b}a=aaa.word.length;b=bbb.word.length;if(a!==b){return a-b}a=aaa.word;b=bbb.word;if(a!==b){return(a>b?+1:-1)}a=(aaa.index<0);b=(bbb.index<0);if(a!==b){return a-b}a=aaa.index;b=bbb.index;if(a!==b){return a-b}if((aaa.item.ty===TY_PRIMITIVE&&bbb.item.ty!==TY_KEYWORD)||(aaa.item.ty===TY_KEYWORD&&bbb.item.ty!==TY_PRIMITIVE)){return-1}if((bbb.item.ty===TY_PRIMITIVE&&aaa.item.ty!==TY_PRIMITIVE)||(bbb.item.ty===TY_KEYWORD&&aaa.item.ty!==TY_KEYWORD)){return 1}a=(aaa.item.desc==="");b=(bbb.item.desc==="");if(a!==b){return a-b}a=aaa.item.ty;b=bbb.item.ty;if(a!==b){return a-b}a=aaa.item.path;b=bbb.item.path;if(a!==b){return(a>b?+1:-1)}return 0});let nameSplit=null;if(parsedQuery.elems.length===1){const hasPath=typeof parsedQuery.elems[0].path==="undefined";nameSplit=hasPath?null:parsedQuery.elems[0].path}for(const result of results){if(result.dontValidate){continue}const name=result.item.name.toLowerCase(),path=result.item.path.toLowerCase(),parent=result.item.parent;if(!isType&&!validateResult(name,path,nameSplit,parent)){result.id=-1}}return transformResults(results)}function checkGenerics(row,elem,defaultLev){if(row.length<=GENERICS_DATA||row[GENERICS_DATA].length===0){return elem.generics.length===0?defaultLev:MAX_LEV_DISTANCE+1}else if(row[GENERICS_DATA].length>0&&row[GENERICS_DATA][0][NAME]===""){if(row.length>GENERICS_DATA){return checkGenerics(row[GENERICS_DATA][0],elem,defaultLev)}return elem.generics.length===0?defaultLev:MAX_LEV_DISTANCE+1}let elem_name;if(elem.generics.length>0&&row[GENERICS_DATA].length>=elem.generics.length){const elems=Object.create(null);for(const entry of row[GENERICS_DATA]){elem_name=entry[NAME];if(elem_name===""){if(checkGenerics(entry,elem,MAX_LEV_DISTANCE+1)!==0){return MAX_LEV_DISTANCE+1}continue}if(elems[elem_name]===undefined){elems[elem_name]=0}elems[elem_name]+=1}for(const generic of elem.generics){let match=null;if(elems[generic.name]){match=generic.name}else{for(elem_name in elems){if(!hasOwnPropertyRustdoc(elems,elem_name)){continue}if(elem_name===generic){match=elem_name;break}}}if(match===null){return MAX_LEV_DISTANCE+1}elems[match]-=1;if(elems[match]===0){delete elems[match]}}return 0}return MAX_LEV_DISTANCE+1}function checkIfInGenerics(row,elem){let lev=MAX_LEV_DISTANCE+1;for(const entry of row[GENERICS_DATA]){lev=Math.min(checkType(entry,elem,true),lev);if(lev===0){break}}return lev}function checkType(row,elem,literalSearch){if(row[NAME].length===0){if(row.length>GENERICS_DATA){return checkIfInGenerics(row,elem)}return MAX_LEV_DISTANCE+1}let lev=levenshtein(row[NAME],elem.name);if(literalSearch){if(lev!==0){if(elem.generics.length===0){const checkGeneric=(row.length>GENERICS_DATA&&row[GENERICS_DATA].length>0);if(checkGeneric&&row[GENERICS_DATA].findIndex(tmp_elem=>tmp_elem[NAME]===elem.name)!==-1){return 0}}return MAX_LEV_DISTANCE+1}else if(elem.generics.length>0){return checkGenerics(row,elem,MAX_LEV_DISTANCE+1)}return 0}else if(row.length>GENERICS_DATA){if(elem.generics.length===0){if(lev===0){return 0}lev=checkIfInGenerics(row,elem);return lev+0.5}else if(lev>MAX_LEV_DISTANCE){return checkIfInGenerics(row,elem)}else{const tmp_lev=checkGenerics(row,elem,lev);if(tmp_lev>MAX_LEV_DISTANCE){return MAX_LEV_DISTANCE+1}return(tmp_lev+lev)/2}}else if(elem.generics.length>0){return MAX_LEV_DISTANCE+1}return lev}function findArg(row,elem,typeFilter){let lev=MAX_LEV_DISTANCE+1;if(row&&row.type&&row.type[INPUTS_DATA]&&row.type[INPUTS_DATA].length>0){for(const input of row.type[INPUTS_DATA]){if(!typePassesFilter(typeFilter,input[1])){continue}lev=Math.min(lev,checkType(input,elem,parsedQuery.literalSearch));if(lev===0){return 0}}}return parsedQuery.literalSearch?MAX_LEV_DISTANCE+1:lev}function checkReturned(row,elem,typeFilter){let lev=MAX_LEV_DISTANCE+1;if(row&&row.type&&row.type.length>OUTPUT_DATA){let ret=row.type[OUTPUT_DATA];if(typeof ret[0]==="string"){ret=[ret]}for(const ret_ty of ret){if(!typePassesFilter(typeFilter,ret_ty[1])){continue}lev=Math.min(lev,checkType(ret_ty,elem,parsedQuery.literalSearch));if(lev===0){return 0}}}return parsedQuery.literalSearch?MAX_LEV_DISTANCE+1:lev}function checkPath(contains,ty){if(contains.length===0){return 0}let ret_lev=MAX_LEV_DISTANCE+1;const path=ty.path.split("::");if(ty.parent&&ty.parent.name){path.push(ty.parent.name.toLowerCase())}const length=path.length;const clength=contains.length;if(clength>length){return MAX_LEV_DISTANCE+1}for(let i=0;ilength){break}let lev_total=0;let aborted=false;for(let x=0;xMAX_LEV_DISTANCE){aborted=true;break}lev_total+=lev}if(!aborted){ret_lev=Math.min(ret_lev,Math.round(lev_total/clength))}}return ret_lev}function typePassesFilter(filter,type){if(filter<=NO_TYPE_FILTER||filter===type)return true;const name=itemTypes[type];switch(itemTypes[filter]){case"constant":return name==="associatedconstant";case"fn":return name==="method"||name==="tymethod";case"type":return name==="primitive"||name==="associatedtype";case"trait":return name==="traitalias"}return false}function createAliasFromItem(item){return{crate:item.crate,name:item.name,path:item.path,desc:item.desc,ty:item.ty,parent:item.parent,type:item.type,is_alias:true,}}function handleAliases(ret,query,filterCrates){const lowerQuery=query.toLowerCase();const aliases=[];const crateAliases=[];if(filterCrates!==null){if(ALIASES[filterCrates]&&ALIASES[filterCrates][lowerQuery]){const query_aliases=ALIASES[filterCrates][lowerQuery];for(const alias of query_aliases){aliases.push(createAliasFromItem(searchIndex[alias]))}}}else{Object.keys(ALIASES).forEach(crate=>{if(ALIASES[crate][lowerQuery]){const pushTo=crate===window.currentCrate?crateAliases:aliases;const query_aliases=ALIASES[crate][lowerQuery];for(const alias of query_aliases){pushTo.push(createAliasFromItem(searchIndex[alias]))}}})}const sortFunc=(aaa,bbb)=>{if(aaa.path{alias.alias=query;const res=buildHrefAndPath(alias);alias.displayPath=pathSplitter(res[0]);alias.fullPath=alias.displayPath+alias.name;alias.href=res[1];ret.others.unshift(alias);if(ret.others.length>MAX_RESULTS){ret.others.pop()}};onEach(aliases,pushFunc);onEach(crateAliases,pushFunc)}function addIntoResults(results,fullId,id,index,lev){if(lev===0||(!parsedQuery.literalSearch&&lev<=MAX_LEV_DISTANCE)){if(results[fullId]!==undefined){const result=results[fullId];if(result.dontValidate||result.lev<=lev){return}}results[fullId]={id:id,index:index,dontValidate:parsedQuery.literalSearch,lev:lev,}}}function handleSingleArg(row,pos,elem,results_others,results_in_args,results_returned){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let lev,lev_add=0,index=-1;const fullId=row.id;const in_args=findArg(row,elem,parsedQuery.typeFilter);const returned=checkReturned(row,elem,parsedQuery.typeFilter);addIntoResults(results_in_args,fullId,pos,index,in_args);addIntoResults(results_returned,fullId,pos,index,returned);if(!typePassesFilter(parsedQuery.typeFilter,row.ty)){return}const searchWord=searchWords[pos];if(parsedQuery.literalSearch){if(searchWord===elem.name){addIntoResults(results_others,fullId,pos,-1,0)}return}if(elem.name.length===0){if(row.type!==null){lev=checkGenerics(row.type,elem,MAX_LEV_DISTANCE+1);addIntoResults(results_others,fullId,pos,index,lev)}return}if(elem.fullPath.length>1){lev=checkPath(elem.pathWithoutLast,row);if(lev>MAX_LEV_DISTANCE||(parsedQuery.literalSearch&&lev!==0)){return}else if(lev>0){lev_add=lev/10}}if(searchWord.indexOf(elem.pathLast)>-1||row.normalizedName.indexOf(elem.pathLast)>-1){if(!results_others[fullId]!==undefined){index=row.normalizedName.indexOf(elem.pathLast)}}lev=levenshtein(searchWord,elem.pathLast);if(lev>0&&elem.pathLast.length>2&&searchWord.indexOf(elem.pathLast)>-1){if(elem.pathLast.length<6){lev=1}else{lev=0}}lev+=lev_add;if(lev>MAX_LEV_DISTANCE){return}else if(index!==-1&&elem.fullPath.length<2){lev-=1}if(lev<0){lev=0}addIntoResults(results_others,fullId,pos,index,lev)}function handleArgs(row,pos,results){if(!row||(filterCrates!==null&&row.crate!==filterCrates)){return}let totalLev=0;let nbLev=0;function checkArgs(elems,callback){for(const elem of elems){const lev=callback(row,elem,NO_TYPE_FILTER);if(lev<=1){nbLev+=1;totalLev+=lev}else{return false}}return true}if(!checkArgs(parsedQuery.elems,findArg)){return}if(!checkArgs(parsedQuery.returned,checkReturned)){return}if(nbLev===0){return}const lev=Math.round(totalLev/nbLev);addIntoResults(results,row.id,pos,0,lev)}function innerRunQuery(){let elem,i,nSearchWords,in_returned,row;if(parsedQuery.foundElems===1){if(parsedQuery.elems.length===1){elem=parsedQuery.elems[0];for(i=0,nSearchWords=searchWords.length;i0){for(i=0,nSearchWords=searchWords.length;i-1||path.indexOf(key)>-1||(parent!==undefined&&parent.name!==undefined&&parent.name.toLowerCase().indexOf(key)>-1)||levenshtein(name,key)<=MAX_LEV_DISTANCE)){return false}}return true}function nextTab(direction){const next=(searchState.currentTab+direction+3)%searchState.focusedByTab.length;searchState.focusedByTab[searchState.currentTab]=document.activeElement;printTab(next);focusSearchResult()}function focusSearchResult(){const target=searchState.focusedByTab[searchState.currentTab]||document.querySelectorAll(".search-results.active a").item(0)||document.querySelectorAll("#titles > button").item(searchState.currentTab);if(target){target.focus()}}function buildHrefAndPath(item){let displayPath;let href;const type=itemTypes[item.ty];const name=item.name;let path=item.path;if(type==="mod"){displayPath=path+"::";href=window.rootPath+path.replace(/::/g,"/")+"/"+name+"/index.html"}else if(type==="import"){displayPath=item.path+"::";href=window.rootPath+item.path.replace(/::/g,"/")+"/index.html#reexport."+name}else if(type==="primitive"||type==="keyword"){displayPath="";href=window.rootPath+path.replace(/::/g,"/")+"/"+type+"."+name+".html"}else if(type==="externcrate"){displayPath="";href=window.rootPath+name+"/index.html"}else if(item.parent!==undefined){const myparent=item.parent;let anchor="#"+type+"."+name;const parentType=itemTypes[myparent.ty];let pageType=parentType;let pageName=myparent.name;if(parentType==="primitive"){displayPath=myparent.name+"::"}else if(type==="structfield"&&parentType==="variant"){const enumNameIdx=item.path.lastIndexOf("::");const enumName=item.path.substr(enumNameIdx+2);path=item.path.substr(0,enumNameIdx);displayPath=path+"::"+enumName+"::"+myparent.name+"::";anchor="#variant."+myparent.name+".field."+name;pageType="enum";pageName=enumName}else{displayPath=path+"::"+myparent.name+"::"}href=window.rootPath+path.replace(/::/g,"/")+"/"+pageType+"."+pageName+".html"+anchor}else{displayPath=item.path+"::";href=window.rootPath+item.path.replace(/::/g,"/")+"/"+type+"."+name+".html"}return[displayPath,href]}function escape(content){const h1=document.createElement("h1");h1.textContent=content;return h1.innerHTML}function pathSplitter(path){const tmp=""+path.replace(/::/g,"::");if(tmp.endsWith("")){return tmp.slice(0,tmp.length-6)}return tmp}function addTab(array,query,display){let extraClass="";if(display===true){extraClass=" active"}const output=document.createElement("div");let length=0;if(array.length>0){output.className="search-results "+extraClass;array.forEach(item=>{const name=item.name;const type=itemTypes[item.ty];length+=1;let extra="";if(type==="primitive"){extra=" (primitive type)"}else if(type==="keyword"){extra=" (keyword)"}const link=document.createElement("a");link.className="result-"+type;link.href=item.href;const wrapper=document.createElement("div");const resultName=document.createElement("div");resultName.className="result-name";if(item.is_alias){const alias=document.createElement("span");alias.className="alias";const bold=document.createElement("b");bold.innerText=item.alias;alias.appendChild(bold);alias.insertAdjacentHTML("beforeend"," - see ");resultName.appendChild(alias)}resultName.insertAdjacentHTML("beforeend",item.displayPath+""+name+extra+"");wrapper.appendChild(resultName);const description=document.createElement("div");description.className="desc";const spanDesc=document.createElement("span");spanDesc.insertAdjacentHTML("beforeend",item.desc);description.appendChild(spanDesc);wrapper.appendChild(description);link.appendChild(wrapper);output.appendChild(link)})}else if(query.error===null){output.className="search-failed"+extraClass;output.innerHTML="No results :(
"+"Try on DuckDuckGo?

"+"Or try looking in one of these:"}return[output,length]}function makeTabHeader(tabNb,text,nbElems){if(searchState.currentTab===tabNb){return""}return""}function showResults(results,go_to_first,filterCrates){const search=searchState.outputElement();if(go_to_first||(results.others.length===1&&getSettingValue("go-to-only-result")==="true"&&(!search.firstChild||search.firstChild.innerText!==searchState.loadingText))){const elem=document.createElement("a");elem.href=results.others[0].href;removeClass(elem,"active");document.body.appendChild(elem);elem.click();return}if(results.query===undefined){results.query=parseQuery(searchState.input.value)}currentResults=results.query.userQuery;const ret_others=addTab(results.others,results.query,true);const ret_in_args=addTab(results.in_args,results.query,false);const ret_returned=addTab(results.returned,results.query,false);let currentTab=searchState.currentTab;if((currentTab===0&&ret_others[1]===0)||(currentTab===1&&ret_in_args[1]===0)||(currentTab===2&&ret_returned[1]===0)){if(ret_others[1]!==0){currentTab=0}else if(ret_in_args[1]!==0){currentTab=1}else if(ret_returned[1]!==0){currentTab=2}}let crates="";if(window.ALL_CRATES.length>1){crates=" in "}let typeFilter="";if(results.query.typeFilter!==NO_TYPE_FILTER){typeFilter=" (type: "+escape(itemTypes[results.query.typeFilter])+")"}let output="
"+`

Results for ${escape(results.query.userQuery)}`+`${typeFilter}

in ${crates}
`;if(results.query.error!==null){output+=`

Query parser error: "${results.query.error}".

`;output+="
"+makeTabHeader(0,"In Names",ret_others[1])+"
";currentTab=0}else if(results.query.foundElems<=1&&results.query.returned.length===0){output+="
"+makeTabHeader(0,"In Names",ret_others[1])+makeTabHeader(1,"In Parameters",ret_in_args[1])+makeTabHeader(2,"In Return Types",ret_returned[1])+"
"}else{const signatureTabTitle=results.query.elems.length===0?"In Function Return Types":results.query.returned.length===0?"In Function Parameters":"In Function Signatures";output+="
"+makeTabHeader(0,signatureTabTitle,ret_others[1])+"
";currentTab=0}const resultsElem=document.createElement("div");resultsElem.id="results";resultsElem.appendChild(ret_others[0]);resultsElem.appendChild(ret_in_args[0]);resultsElem.appendChild(ret_returned[0]);search.innerHTML=output;const crateSearch=document.getElementById("crate-search");if(crateSearch){crateSearch.addEventListener("input",updateCrate)}search.appendChild(resultsElem);searchState.showResults(search);const elems=document.getElementById("titles").childNodes;searchState.focusedByTab=[];let i=0;for(const elem of elems){const j=i;elem.onclick=()=>{printTab(j)};searchState.focusedByTab.push(null);i+=1}printTab(currentTab)}function search(e,forced){const params=searchState.getQueryStringParams();const query=parseQuery(searchState.input.value.trim());if(e){e.preventDefault()}if(!forced&&query.userQuery===currentResults){if(query.userQuery.length>0){putBackSearch()}return}let filterCrates=getFilterCrates();if(filterCrates===null&¶ms["filter-crate"]!==undefined){filterCrates=params["filter-crate"]}searchState.title="Results for "+query.original+" - Rust";if(browserSupportsHistoryApi()){const newURL=buildUrl(query.original,filterCrates);if(!history.state&&!params.search){history.pushState(null,"",newURL)}else{history.replaceState(null,"",newURL)}}showResults(execQuery(query,searchWords,filterCrates),params.go_to_first,filterCrates)}function buildIndex(rawSearchIndex){searchIndex=[];const searchWords=[];let i,word;let currentIndex=0;let id=0;for(const crate in rawSearchIndex){if(!hasOwnPropertyRustdoc(rawSearchIndex,crate)){continue}let crateSize=0;const crateCorpus=rawSearchIndex[crate];searchWords.push(crate);const crateRow={crate:crate,ty:1,name:crate,path:"",desc:crateCorpus.doc,parent:undefined,type:null,id:id,normalizedName:crate.indexOf("_")===-1?crate:crate.replace(/_/g,""),};id+=1;searchIndex.push(crateRow);currentIndex+=1;const itemTypes=crateCorpus.t;const itemNames=crateCorpus.n;const itemPaths=crateCorpus.q;const itemDescs=crateCorpus.d;const itemParentIdxs=crateCorpus.i;const itemFunctionSearchTypes=crateCorpus.f;const paths=crateCorpus.p;const aliases=crateCorpus.a;let len=paths.length;for(i=0;i0?paths[itemParentIdxs[i]-1]:undefined,type:itemFunctionSearchTypes[i],id:id,normalizedName:word.indexOf("_")===-1?word:word.replace(/_/g,""),};id+=1;searchIndex.push(row);lastPath=row.path;crateSize+=1}if(aliases){ALIASES[crate]=Object.create(null);for(const alias_name in aliases){if(!hasOwnPropertyRustdoc(aliases,alias_name)){continue}if(!hasOwnPropertyRustdoc(ALIASES[crate],alias_name)){ALIASES[crate][alias_name]=[]}for(const local_alias of aliases[alias_name]){ALIASES[crate][alias_name].push(local_alias+currentIndex)}}}currentIndex+=crateSize}return searchWords}function onSearchSubmit(e){e.preventDefault();searchState.clearInputTimeout();search()}function putBackSearch(){const search_input=searchState.input;if(!searchState.input){return}if(search_input.value!==""&&!searchState.isDisplayed()){searchState.showResults();if(browserSupportsHistoryApi()){history.replaceState(null,"",buildUrl(search_input.value,getFilterCrates()))}document.title=searchState.title}}function registerSearchEvents(){const searchAfter500ms=()=>{searchState.clearInputTimeout();if(searchState.input.value.length===0){if(browserSupportsHistoryApi()){history.replaceState(null,window.currentCrate+" - Rust",getNakedUrl()+window.location.hash)}searchState.hideResults()}else{searchState.timeout=setTimeout(search,500)}};searchState.input.onkeyup=searchAfter500ms;searchState.input.oninput=searchAfter500ms;document.getElementsByClassName("search-form")[0].onsubmit=onSearchSubmit;searchState.input.onchange=e=>{if(e.target!==document.activeElement){return}searchState.clearInputTimeout();setTimeout(search,0)};searchState.input.onpaste=searchState.input.onchange;searchState.outputElement().addEventListener("keydown",e=>{if(e.altKey||e.ctrlKey||e.shiftKey||e.metaKey){return}if(e.which===38){const previous=document.activeElement.previousElementSibling;if(previous){previous.focus()}else{searchState.focus()}e.preventDefault()}else if(e.which===40){const next=document.activeElement.nextElementSibling;if(next){next.focus()}const rect=document.activeElement.getBoundingClientRect();if(window.innerHeight-rect.bottom{if(e.which===40){focusSearchResult();e.preventDefault()}});searchState.input.addEventListener("focus",()=>{putBackSearch()});searchState.input.addEventListener("blur",()=>{searchState.input.placeholder=searchState.input.origPlaceholder});if(browserSupportsHistoryApi()){const previousTitle=document.title;window.addEventListener("popstate",e=>{const params=searchState.getQueryStringParams();document.title=previousTitle;currentResults=null;if(params.search&¶ms.search.length>0){searchState.input.value=params.search;search(e)}else{searchState.input.value="";searchState.hideResults()}})}window.onpageshow=()=>{const qSearch=searchState.getQueryStringParams().search;if(searchState.input.value===""&&qSearch){searchState.input.value=qSearch}search()}}function updateCrate(ev){if(ev.target.value==="All crates"){const params=searchState.getQueryStringParams();const query=searchState.input.value.trim();if(!history.state&&!params.search){history.pushState(null,"",buildUrl(query,null))}else{history.replaceState(null,"",buildUrl(query,null))}}currentResults=null;search(undefined,true)}const searchWords=buildIndex(rawSearchIndex);registerSearchEvents();function runSearchIfNeeded(){if(searchState.getQueryStringParams().search){search()}}runSearchIfNeeded()};if(window.searchIndex!==undefined){initSearch(window.searchIndex)}})() \ No newline at end of file diff --git a/settings.css b/settings.css index 35df7bce..a76a580d 100644 --- a/settings.css +++ b/settings.css @@ -1 +1 @@ -.setting-line{margin:0.6em 0 0.6em 0.3em;position:relative;}.setting-line>div{display:inline-block;vertical-align:top;font-size:17px;padding-top:2px;}.setting-line>.title{font-size:19px;width:100%;max-width:none;border-bottom:1px solid;}.setting-line .radio-line,.setting-line .choices{display:flex;flex-wrap:wrap;}.setting-line .radio-line .setting-name{flex-grow:1;margin-top:auto;margin-bottom:auto;}.setting-line .radio-line input{margin-right:0.3em;}.radio-line .choice{border-radius:0.1em;border:1px solid;margin-left:0.5em;margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;}.toggle{position:relative;display:inline-block;width:45px;height:27px;margin-right:20px;}.toggle input{opacity:0;position:absolute;}.select-wrapper{float:right;position:relative;height:27px;min-width:25%;}.select-wrapper select{appearance:none;-moz-appearance:none;-webkit-appearance:none;background:none;border:2px solid #ccc;padding-right:28px;width:100%;}.select-wrapper img{pointer-events:none;position:absolute;right:0;bottom:0;background:#ccc;height:100%;width:28px;padding:0px 4px;}.select-wrapper select option{color:initial;}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;-webkit-transition:.3s;transition:.3s;}.slider:before{position:absolute;content:"";height:19px;width:19px;left:4px;bottom:4px;background-color:white;-webkit-transition:.3s;transition:.3s;}input:checked+.slider{background-color:#2196F3;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}input:checked+.slider:before{-webkit-transform:translateX(19px);-ms-transform:translateX(19px);transform:translateX(19px);}.setting-line>.sub-settings{padding-left:42px;width:100%;display:block;} \ No newline at end of file +.setting-line{margin:0.6em 0 0.6em 0.3em;position:relative;}.setting-line>div{display:inline-block;vertical-align:top;font-size:17px;padding-top:2px;}.setting-line>.title{font-size:19px;width:100%;max-width:none;border-bottom:1px solid;}.setting-line .radio-line,.setting-line .choices{display:flex;flex-wrap:wrap;}.setting-line .radio-line .setting-name{flex-grow:1;margin-top:auto;margin-bottom:auto;}.setting-line .radio-line input{margin-right:0.3em;}.radio-line .choice{border-radius:0.1em;border:1px solid;margin-left:0.5em;margin-top:0.1em;margin-bottom:0.1em;min-width:3.8em;padding:0.3em;}.toggle{position:relative;display:inline-block;width:45px;height:27px;margin-right:20px;}.toggle input{opacity:0;position:absolute;}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#ccc;transition:.3s;}.slider:before{position:absolute;content:"";height:19px;width:19px;left:4px;bottom:4px;background-color:white;transition:.3s;}input:checked+.slider{background-color:#2196F3;}input:focus+.slider{box-shadow:0 0 0 2px #0a84ff,0 0 0 6px rgba(10,132,255,0.3);}input:checked+.slider:before{transform:translateX(19px);}.setting-line>.sub-settings{padding-left:42px;width:100%;display:block;} \ No newline at end of file diff --git a/settings.html b/settings.html index 02084f9e..5a09a8cd 100644 --- a/settings.html +++ b/settings.html @@ -3,15 +3,5 @@

-

Rustdoc settings

Back
Use system theme
Theme
Preferred light theme
Preferred dark theme
Auto-hide item contents for large items.
Auto-hide item methods' documentation
Auto-hide trait implementation documentation
Directly go to item in search if there is only one result
Show line numbers on code examples
Disable keyboard shortcuts
+

Settings

\ No newline at end of file diff --git a/settings.js b/settings.js index 80471891..a68768c6 100644 --- a/settings.js +++ b/settings.js @@ -1 +1,19 @@ -(function(){function changeSetting(settingName,value){updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":case"use-system-theme":updateSystemTheme();updateLightAndDark();break}}function handleKey(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey){return}switch(getVirtualKey(ev)){case"Enter":case"Return":case"Space":ev.target.checked=!ev.target.checked;ev.preventDefault();break}}function showLightAndDark(){addClass(document.getElementById("theme").parentElement,"hidden");removeClass(document.getElementById("preferred-light-theme").parentElement,"hidden");removeClass(document.getElementById("preferred-dark-theme").parentElement,"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme").parentElement,"hidden");addClass(document.getElementById("preferred-dark-theme").parentElement,"hidden");removeClass(document.getElementById("theme").parentElement,"hidden")}function updateLightAndDark(){if(getSettingValue("use-system-theme")!=="false"){showLightAndDark()}else{hideLightAndDark()}}function setEvents(){updateLightAndDark();onEachLazy(document.getElementsByClassName("slider"),function(elem){var toggle=elem.previousElementSibling;var settingId=toggle.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=function(){changeSetting(this.id,this.checked)};toggle.onkeyup=handleKey;toggle.onkeyrelease=handleKey});onEachLazy(document.getElementsByClassName("select-wrapper"),function(elem){var select=elem.getElementsByTagName("select")[0];var settingId=select.id;var settingValue=getSettingValue(settingId);if(settingValue!==null){select.value=settingValue}select.onchange=function(){changeSetting(this.id,this.value)}});onEachLazy(document.querySelectorAll("input[type=\"radio\"]"),function(elem){const settingId=elem.name;const settingValue=getSettingValue(settingId);if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",function(ev){changeSetting(ev.target.name,ev.target.value)})});document.getElementById("back").addEventListener("click",function(){history.back()})}window.addEventListener("DOMContentLoaded",setEvents)})() \ No newline at end of file +"use strict";(function(){const isSettingsPage=window.location.pathname.endsWith("/settings.html");function changeSetting(settingName,value){updateLocalStorage(settingName,value);switch(settingName){case"theme":case"preferred-dark-theme":case"preferred-light-theme":case"use-system-theme":updateSystemTheme();updateLightAndDark();break}}function handleKey(ev){if(ev.ctrlKey||ev.altKey||ev.metaKey){return}switch(getVirtualKey(ev)){case"Enter":case"Return":case"Space":ev.target.checked=!ev.target.checked;ev.preventDefault();break}}function showLightAndDark(){addClass(document.getElementById("theme").parentElement,"hidden");removeClass(document.getElementById("preferred-light-theme").parentElement,"hidden");removeClass(document.getElementById("preferred-dark-theme").parentElement,"hidden")}function hideLightAndDark(){addClass(document.getElementById("preferred-light-theme").parentElement,"hidden");addClass(document.getElementById("preferred-dark-theme").parentElement,"hidden");removeClass(document.getElementById("theme").parentElement,"hidden")}function updateLightAndDark(){if(getSettingValue("use-system-theme")!=="false"){showLightAndDark()}else{hideLightAndDark()}}function setEvents(settingsElement){updateLightAndDark();onEachLazy(settingsElement.getElementsByClassName("slider"),elem=>{const toggle=elem.previousElementSibling;const settingId=toggle.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){toggle.checked=settingValue==="true"}toggle.onchange=function(){changeSetting(this.id,this.checked)};toggle.onkeyup=handleKey;toggle.onkeyrelease=handleKey});onEachLazy(settingsElement.getElementsByClassName("select-wrapper"),elem=>{const select=elem.getElementsByTagName("select")[0];const settingId=select.id;const settingValue=getSettingValue(settingId);if(settingValue!==null){select.value=settingValue}select.onchange=function(){changeSetting(this.id,this.value)}});onEachLazy(settingsElement.querySelectorAll("input[type=\"radio\"]"),elem=>{const settingId=elem.name;const settingValue=getSettingValue(settingId);if(settingValue!==null&&settingValue!=="null"){elem.checked=settingValue===elem.value}elem.addEventListener("change",ev=>{changeSetting(ev.target.name,ev.target.value)})})}function buildSettingsPageSections(settings){let output="";for(const setting of settings){output+="
";const js_data_name=setting["js_name"];const setting_name=setting["name"];if(setting["options"]!==undefined){output+=`
\ + ${setting_name}\ +
`;onEach(setting["options"],option=>{const checked=option===setting["default"]?" checked":"";output+=``});output+="
"}else{const checked=setting["default"]===true?" checked":"";output+=` + +
${setting_name}
`}output+="
"}return output}function buildSettingsPage(){const themes=getVar("themes").split(",");const settings=[{"name":"Use system theme","js_name":"use-system-theme","default":true,},{"name":"Theme","js_name":"theme","default":"light","options":themes,},{"name":"Preferred light theme","js_name":"preferred-light-theme","default":"light","options":themes,},{"name":"Preferred dark theme","js_name":"preferred-dark-theme","default":"dark","options":themes,},{"name":"Auto-hide item contents for large items","js_name":"auto-hide-large-items","default":true,},{"name":"Auto-hide item methods' documentation","js_name":"auto-hide-method-docs","default":false,},{"name":"Auto-hide trait implementation documentation","js_name":"auto-hide-trait-implementations","default":false,},{"name":"Directly go to item in search if there is only one result","js_name":"go-to-only-result","default":false,},{"name":"Show line numbers on code examples","js_name":"line-numbers","default":false,},{"name":"Disable keyboard shortcuts","js_name":"disable-shortcuts","default":false,},];const el=document.createElement("section");el.id="settings";let innerHTML=` +
+

+ Rustdoc settings +

+ `;if(isSettingsPage){innerHTML+="Back"}else{innerHTML+="Back"}innerHTML+=` +
+
${buildSettingsPageSections(settings)}
`;el.innerHTML=innerHTML;if(isSettingsPage){document.getElementById(MAIN_ID).appendChild(el)}else{getNotDisplayedElem().appendChild(el)}return el}const settingsMenu=buildSettingsPage();if(isSettingsPage){getSettingsButton().onclick=function(event){event.preventDefault()}}else{const settingsButton=getSettingsButton();settingsButton.onclick=function(event){event.preventDefault();if(settingsMenu.parentElement.id===NOT_DISPLAYED_ID){switchDisplayedElement(settingsMenu)}else{window.hideSettings()}};window.hideSettings=function(){switchDisplayedElement(null)}}setTimeout(()=>{setEvents(settingsMenu);if(!isSettingsPage){switchDisplayedElement(settingsMenu)}removeClass(getSettingsButton(),"rotate")},0)})() \ No newline at end of file diff --git a/source-files.js b/source-files.js index 9dcca70d..6f8adaf8 100644 --- a/source-files.js +++ b/source-files.js @@ -1,4 +1,4 @@ -var N = null;var sourcesIndex = {}; +var sourcesIndex = {}; sourcesIndex["db_core"] = {"name":"","files":["errors.rs","lib.rs","ops.rs","tests.rs"]}; sourcesIndex["db_sqlx_postgres"] = {"name":"","files":["errors.rs","lib.rs"]}; sourcesIndex["mcaptcha"] = {"name":"","dirs":[{"name":"api","dirs":[{"name":"v1","dirs":[{"name":"account","files":["delete.rs","email.rs","mod.rs","password.rs","secret.rs","username.rs"]},{"name":"mcaptcha","files":["create.rs","delete.rs","easy.rs","get.rs","mod.rs","stats.rs","update.rs"]},{"name":"notifications","files":["add.rs","get.rs","mark_read.rs","mod.rs"]},{"name":"pow","files":["get_config.rs","mod.rs","verify_pow.rs","verify_token.rs"]}],"files":["auth.rs","meta.rs","mod.rs","routes.rs"]}],"files":["mod.rs"]},{"name":"email","files":["mod.rs","verification.rs"]},{"name":"pages","dirs":[{"name":"auth","files":["login.rs","mod.rs","register.rs","sudo.rs"]},{"name":"panel","dirs":[{"name":"sitekey","files":["add.rs","delete.rs","edit.rs","list.rs","mod.rs","view.rs"]}],"files":["mod.rs","notifications.rs","settings.rs"]}],"files":["errors.rs","mod.rs","routes.rs","sitemap.rs"]},{"name":"static_assets","files":["filemap.rs","mod.rs","static_files.rs"]},{"name":"widget","files":["mod.rs"]}],"files":["data.rs","date.rs","demo.rs","docs.rs","errors.rs","main.rs","routes.rs","settings.rs","stats.rs"]}; diff --git a/source-script.js b/source-script.js index 9faf492c..96e6c421 100644 --- a/source-script.js +++ b/source-script.js @@ -1 +1 @@ -(function(){function getCurrentFilePath(){var parts=window.location.pathname.split("/");var rootPathParts=window.rootPath.split("/");for(var i=0,len=rootPathParts.length;i"){sidebar.classList.add("expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{sidebar.classList.remove("expanded");child.innerText=">";updateLocalStorage("source-sidebar-show","false")}}function createSidebarToggle(){var sidebarToggle=document.createElement("div");sidebarToggle.id="sidebar-toggle";sidebarToggle.onclick=toggleSidebar;var inner=document.createElement("div");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}sidebarToggle.appendChild(inner);return sidebarToggle}function createSourceSidebar(){if(!window.rootPath.endsWith("/")){window.rootPath+="/"}var container=document.querySelector("nav.sidebar");var sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);var sidebar=document.createElement("div");sidebar.id="source-sidebar";if(getCurrentValue("source-sidebar-show")!=="true"){container.classList.remove("expanded")}else{container.classList.add("expanded")}var currentFile=getCurrentFilePath();var hasFoundFile=false;var title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(function(key){sourcesIndex[key].name=key;hasFoundFile=createDirEntry(sourcesIndex[key],sidebar,"",currentFile,hasFoundFile)});container.appendChild(sidebar);var selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}var lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSourceLines(match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}var from=parseInt(match[1],10);var to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(tocur_line_id){var tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",function(){var match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSourceLines(match)}});onEachLazy(document.getElementsByClassName("line-numbers"),function(el){el.addEventListener("click",handleSourceHighlight)});highlightSourceLines();window.createSourceSidebar=createSourceSidebar})() \ No newline at end of file +"use strict";(function(){function getCurrentFilePath(){const parts=window.location.pathname.split("/");const rootPathParts=window.rootPath.split("/");for(const rootPathPart of rootPathParts){if(rootPathPart===".."){parts.pop()}}let file=window.location.pathname.substring(parts.join("/").length);if(file.startsWith("/")){file=file.substring(1)}return file.substring(0,file.length-5)}function createDirEntry(elem,parent,fullPath,currentFile,hasFoundFile){const name=document.createElement("div");name.className="name";fullPath+=elem["name"]+"/";name.onclick=()=>{if(hasClass(this,"expand")){removeClass(this,"expand")}else{addClass(this,"expand")}};name.innerText=elem["name"];const children=document.createElement("div");children.className="children";const folders=document.createElement("div");folders.className="folders";if(elem.dirs){for(const dir of elem.dirs){if(createDirEntry(dir,folders,fullPath,currentFile,hasFoundFile)){addClass(name,"expand");hasFoundFile=true}}}children.appendChild(folders);const files=document.createElement("div");files.className="files";if(elem.files){for(const file_text of elem.files){const file=document.createElement("a");file.innerText=file_text;file.href=window.rootPath+"src/"+fullPath+file_text+".html";if(!hasFoundFile&¤tFile===fullPath+file_text){file.className="selected";addClass(name,"expand");hasFoundFile=true}files.appendChild(file)}}children.appendChild(files);parent.appendChild(name);parent.appendChild(children);return hasFoundFile&¤tFile.startsWith(fullPath)}function toggleSidebar(){const sidebar=document.querySelector("nav.sidebar");const child=this.children[0];if(child.innerText===">"){sidebar.classList.add("expanded");child.innerText="<";updateLocalStorage("source-sidebar-show","true")}else{sidebar.classList.remove("expanded");child.innerText=">";updateLocalStorage("source-sidebar-show","false")}}function createSidebarToggle(){const sidebarToggle=document.createElement("div");sidebarToggle.id="sidebar-toggle";sidebarToggle.onclick=toggleSidebar;const inner=document.createElement("div");if(getCurrentValue("source-sidebar-show")==="true"){inner.innerText="<"}else{inner.innerText=">"}sidebarToggle.appendChild(inner);return sidebarToggle}function createSourceSidebar(){if(!window.rootPath.endsWith("/")){window.rootPath+="/"}const container=document.querySelector("nav.sidebar");const sidebarToggle=createSidebarToggle();container.insertBefore(sidebarToggle,container.firstChild);const sidebar=document.createElement("div");sidebar.id="source-sidebar";if(getCurrentValue("source-sidebar-show")!=="true"){container.classList.remove("expanded")}else{container.classList.add("expanded")}const currentFile=getCurrentFilePath();let hasFoundFile=false;const title=document.createElement("div");title.className="title";title.innerText="Files";sidebar.appendChild(title);Object.keys(sourcesIndex).forEach(key=>{sourcesIndex[key].name=key;hasFoundFile=createDirEntry(sourcesIndex[key],sidebar,"",currentFile,hasFoundFile)});container.appendChild(sidebar);const selected_elem=sidebar.getElementsByClassName("selected")[0];if(typeof selected_elem!=="undefined"){selected_elem.focus()}}const lineNumbersRegex=/^#?(\d+)(?:-(\d+))?$/;function highlightSourceLines(match){if(typeof match==="undefined"){match=window.location.hash.match(lineNumbersRegex)}if(!match){return}let from=parseInt(match[1],10);let to=from;if(typeof match[2]!=="undefined"){to=parseInt(match[2],10)}if(to{onEachLazy(e.getElementsByTagName("span"),i_e=>{removeClass(i_e,"line-highlighted")})});for(let i=from;i<=to;++i){elem=document.getElementById(i);if(!elem){break}addClass(elem,"line-highlighted")}}const handleSourceHighlight=(function(){let prev_line_id=0;const set_fragment=name=>{const x=window.scrollX,y=window.scrollY;if(browserSupportsHistoryApi()){history.replaceState(null,null,"#"+name);highlightSourceLines()}else{location.replace("#"+name)}window.scrollTo(x,y)};return ev=>{let cur_line_id=parseInt(ev.target.id,10);ev.preventDefault();if(ev.shiftKey&&prev_line_id){if(prev_line_id>cur_line_id){const tmp=prev_line_id;prev_line_id=cur_line_id;cur_line_id=tmp}set_fragment(prev_line_id+"-"+cur_line_id)}else{prev_line_id=cur_line_id;set_fragment(cur_line_id)}}}());window.addEventListener("hashchange",()=>{const match=window.location.hash.match(lineNumbersRegex);if(match){return highlightSourceLines(match)}});onEachLazy(document.getElementsByClassName("line-numbers"),el=>{el.addEventListener("click",handleSourceHighlight)});highlightSourceLines();window.createSourceSidebar=createSourceSidebar})() \ No newline at end of file diff --git a/src/db_core/errors.rs.html b/src/db_core/errors.rs.html index e197a1ff..1d24e067 100644 --- a/src/db_core/errors.rs.html +++ b/src/db_core/errors.rs.html @@ -126,5 +126,5 @@ /// Generic result data structure pub type DBResult<V> = std::result::Result<V, DBError>;
-
+
\ No newline at end of file diff --git a/src/db_core/lib.rs.html b/src/db_core/lib.rs.html index 0ee54d1a..c854b2d4 100644 --- a/src/db_core/lib.rs.html +++ b/src/db_core/lib.rs.html @@ -708,5 +708,5 @@ } }
-
+
\ No newline at end of file diff --git a/src/db_core/ops.rs.html b/src/db_core/ops.rs.html index 2e4ce354..baebf674 100644 --- a/src/db_core/ops.rs.html +++ b/src/db_core/ops.rs.html @@ -102,5 +102,5 @@ async fn migrate(&self) -> DBResult<()>; }
-
+
\ No newline at end of file diff --git a/src/db_core/tests.rs.html b/src/db_core/tests.rs.html index 4a974e99..9a59f539 100644 --- a/src/db_core/tests.rs.html +++ b/src/db_core/tests.rs.html @@ -572,5 +572,5 @@ assert!(!db.captcha_exists(Some(p.username), c.key).await.unwrap()); }
-
+
\ No newline at end of file diff --git a/src/db_sqlx_postgres/errors.rs.html b/src/db_sqlx_postgres/errors.rs.html index 20fca940..58d86f97 100644 --- a/src/db_sqlx_postgres/errors.rs.html +++ b/src/db_sqlx_postgres/errors.rs.html @@ -116,5 +116,5 @@ } }
-
+
\ No newline at end of file diff --git a/src/db_sqlx_postgres/lib.rs.html b/src/db_sqlx_postgres/lib.rs.html index 88ce82df..8b1870c4 100644 --- a/src/db_sqlx_postgres/lib.rs.html +++ b/src/db_sqlx_postgres/lib.rs.html @@ -1914,5 +1914,5 @@ } }
-
+
\ No newline at end of file diff --git a/src/mcaptcha/api/mod.rs.html b/src/mcaptcha/api/mod.rs.html index 36cd728a..5c3fa7bb 100644 --- a/src/mcaptcha/api/mod.rs.html +++ b/src/mcaptcha/api/mod.rs.html @@ -40,5 +40,5 @@ pub mod v1;
-
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/account/delete.rs.html b/src/mcaptcha/api/v1/account/delete.rs.html index c64547f9..00012968 100644 --- a/src/mcaptcha/api/v1/account/delete.rs.html +++ b/src/mcaptcha/api/v1/account/delete.rs.html @@ -132,5 +132,5 @@ cfg.service(delete_account); } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/account/email.rs.html b/src/mcaptcha/api/v1/account/email.rs.html index 58b07265..fa531864 100644 --- a/src/mcaptcha/api/v1/account/email.rs.html +++ b/src/mcaptcha/api/v1/account/email.rs.html @@ -144,5 +144,5 @@ cfg.service(set_email); } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/account/mod.rs.html b/src/mcaptcha/api/v1/account/mod.rs.html index 04c854f6..45147bd6 100644 --- a/src/mcaptcha/api/v1/account/mod.rs.html +++ b/src/mcaptcha/api/v1/account/mod.rs.html @@ -172,5 +172,5 @@ password::services(cfg); } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/account/password.rs.html b/src/mcaptcha/api/v1/account/password.rs.html index cede02a2..bf93c64a 100644 --- a/src/mcaptcha/api/v1/account/password.rs.html +++ b/src/mcaptcha/api/v1/account/password.rs.html @@ -388,5 +388,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/account/secret.rs.html b/src/mcaptcha/api/v1/account/secret.rs.html index f202c526..f0e36cfa 100644 --- a/src/mcaptcha/api/v1/account/secret.rs.html +++ b/src/mcaptcha/api/v1/account/secret.rs.html @@ -130,5 +130,5 @@ cfg.service(update_user_secret); } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/account/username.rs.html b/src/mcaptcha/api/v1/account/username.rs.html index 4203c53e..7f809f4c 100644 --- a/src/mcaptcha/api/v1/account/username.rs.html +++ b/src/mcaptcha/api/v1/account/username.rs.html @@ -158,5 +158,5 @@ cfg.service(set_username); } -
+
\ 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 0dce9147..493566c4 100644 --- a/src/mcaptcha/api/v1/auth.rs.html +++ b/src/mcaptcha/api/v1/auth.rs.html @@ -406,5 +406,5 @@ .finish() } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/mcaptcha/create.rs.html b/src/mcaptcha/api/v1/mcaptcha/create.rs.html index 9b0a4f1e..a95b9568 100644 --- a/src/mcaptcha/api/v1/mcaptcha/create.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/create.rs.html @@ -202,5 +202,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/mcaptcha/delete.rs.html b/src/mcaptcha/api/v1/mcaptcha/delete.rs.html index 12c12e51..6230a624 100644 --- a/src/mcaptcha/api/v1/mcaptcha/delete.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/delete.rs.html @@ -120,5 +120,5 @@ Ok(HttpResponse::Ok()) } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/mcaptcha/easy.rs.html b/src/mcaptcha/api/v1/mcaptcha/easy.rs.html index 21d1ee23..42392a13 100644 --- a/src/mcaptcha/api/v1/mcaptcha/easy.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/easy.rs.html @@ -780,5 +780,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/mcaptcha/get.rs.html b/src/mcaptcha/api/v1/mcaptcha/get.rs.html index 07054d85..222283a9 100644 --- a/src/mcaptcha/api/v1/mcaptcha/get.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/get.rs.html @@ -108,5 +108,5 @@ pub visitor_threshold: i32, } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/mcaptcha/mod.rs.html b/src/mcaptcha/api/v1/mcaptcha/mod.rs.html index 630e8014..0b6f2c7b 100644 --- a/src/mcaptcha/api/v1/mcaptcha/mod.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/mod.rs.html @@ -160,5 +160,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/mcaptcha/stats.rs.html b/src/mcaptcha/api/v1/mcaptcha/stats.rs.html index 970e2042..b2223188 100644 --- a/src/mcaptcha/api/v1/mcaptcha/stats.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/stats.rs.html @@ -112,5 +112,5 @@ Ok(HttpResponse::Ok().json(&stats)) } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/mcaptcha/update.rs.html b/src/mcaptcha/api/v1/mcaptcha/update.rs.html index 71134fdc..a6c3718f 100644 --- a/src/mcaptcha/api/v1/mcaptcha/update.rs.html +++ b/src/mcaptcha/api/v1/mcaptcha/update.rs.html @@ -418,5 +418,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/meta.rs.html b/src/mcaptcha/api/v1/meta.rs.html index e82ae2f0..99755c9d 100644 --- a/src/mcaptcha/api/v1/meta.rs.html +++ b/src/mcaptcha/api/v1/meta.rs.html @@ -290,5 +290,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/mod.rs.html b/src/mcaptcha/api/v1/mod.rs.html index 53ba084c..e128b2c7 100644 --- a/src/mcaptcha/api/v1/mod.rs.html +++ b/src/mcaptcha/api/v1/mod.rs.html @@ -106,5 +106,5 @@ #[cfg(test)] mod tests; -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/notifications/add.rs.html b/src/mcaptcha/api/v1/notifications/add.rs.html index dcdf052e..a979d4cf 100644 --- a/src/mcaptcha/api/v1/notifications/add.rs.html +++ b/src/mcaptcha/api/v1/notifications/add.rs.html @@ -210,5 +210,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/notifications/get.rs.html b/src/mcaptcha/api/v1/notifications/get.rs.html index 2d093835..dba407a8 100644 --- a/src/mcaptcha/api/v1/notifications/get.rs.html +++ b/src/mcaptcha/api/v1/notifications/get.rs.html @@ -292,5 +292,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/notifications/mark_read.rs.html b/src/mcaptcha/api/v1/notifications/mark_read.rs.html index c39de9bd..8f0d266b 100644 --- a/src/mcaptcha/api/v1/notifications/mark_read.rs.html +++ b/src/mcaptcha/api/v1/notifications/mark_read.rs.html @@ -288,5 +288,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/notifications/mod.rs.html b/src/mcaptcha/api/v1/notifications/mod.rs.html index 5ae1e5a3..da060dcf 100644 --- a/src/mcaptcha/api/v1/notifications/mod.rs.html +++ b/src/mcaptcha/api/v1/notifications/mod.rs.html @@ -94,5 +94,5 @@ cfg.service(mark_read::mark_read); } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/pow/get_config.rs.html b/src/mcaptcha/api/v1/pow/get_config.rs.html index f5341762..d575f5ff 100644 --- a/src/mcaptcha/api/v1/pow/get_config.rs.html +++ b/src/mcaptcha/api/v1/pow/get_config.rs.html @@ -566,5 +566,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/pow/mod.rs.html b/src/mcaptcha/api/v1/pow/mod.rs.html index 4c431040..d8b9defd 100644 --- a/src/mcaptcha/api/v1/pow/mod.rs.html +++ b/src/mcaptcha/api/v1/pow/mod.rs.html @@ -196,5 +196,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/pow/verify_pow.rs.html b/src/mcaptcha/api/v1/pow/verify_pow.rs.html index 30d213a1..de543ff8 100644 --- a/src/mcaptcha/api/v1/pow/verify_pow.rs.html +++ b/src/mcaptcha/api/v1/pow/verify_pow.rs.html @@ -270,5 +270,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/pow/verify_token.rs.html b/src/mcaptcha/api/v1/pow/verify_token.rs.html index 95ab2391..b0024617 100644 --- a/src/mcaptcha/api/v1/pow/verify_token.rs.html +++ b/src/mcaptcha/api/v1/pow/verify_token.rs.html @@ -318,5 +318,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/api/v1/routes.rs.html b/src/mcaptcha/api/v1/routes.rs.html index 3b6e1abe..ee7cecce 100644 --- a/src/mcaptcha/api/v1/routes.rs.html +++ b/src/mcaptcha/api/v1/routes.rs.html @@ -112,5 +112,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/data.rs.html b/src/mcaptcha/data.rs.html index 69313749..d1afbba4 100644 --- a/src/mcaptcha/data.rs.html +++ b/src/mcaptcha/data.rs.html @@ -498,5 +498,5 @@ /// Mailer data type AsyncSmtpTransport<Tokio1Executor> pub type Mailer = AsyncSmtpTransport<Tokio1Executor>; -
+
\ No newline at end of file diff --git a/src/mcaptcha/date.rs.html b/src/mcaptcha/date.rs.html index c3fb76b2..6f008267 100644 --- a/src/mcaptcha/date.rs.html +++ b/src/mcaptcha/date.rs.html @@ -234,5 +234,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/demo.rs.html b/src/mcaptcha/demo.rs.html index 8e941fe0..cf039e6a 100644 --- a/src/mcaptcha/demo.rs.html +++ b/src/mcaptcha/demo.rs.html @@ -340,5 +340,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/docs.rs.html b/src/mcaptcha/docs.rs.html index 7a3634a5..362cf437 100644 --- a/src/mcaptcha/docs.rs.html +++ b/src/mcaptcha/docs.rs.html @@ -274,5 +274,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/email/mod.rs.html b/src/mcaptcha/email/mod.rs.html index 7bc476d1..688669ce 100644 --- a/src/mcaptcha/email/mod.rs.html +++ b/src/mcaptcha/email/mod.rs.html @@ -40,5 +40,5 @@ pub mod verification; -
+
\ No newline at end of file diff --git a/src/mcaptcha/email/verification.rs.html b/src/mcaptcha/email/verification.rs.html index cba1259c..b40ef20c 100644 --- a/src/mcaptcha/email/verification.rs.html +++ b/src/mcaptcha/email/verification.rs.html @@ -264,5 +264,5 @@ project website: {}", } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/errors.rs.html b/src/mcaptcha/errors.rs.html index 6c9acb20..454903d7 100644 --- a/src/mcaptcha/errors.rs.html +++ b/src/mcaptcha/errors.rs.html @@ -682,5 +682,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/main.rs.html b/src/mcaptcha/main.rs.html index af7e5d83..97e2f7e8 100644 --- a/src/mcaptcha/main.rs.html +++ b/src/mcaptcha/main.rs.html @@ -388,5 +388,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/auth/login.rs.html b/src/mcaptcha/pages/auth/login.rs.html index 20dabb2b..33074a69 100644 --- a/src/mcaptcha/pages/auth/login.rs.html +++ b/src/mcaptcha/pages/auth/login.rs.html @@ -94,5 +94,5 @@ .body(&**INDEX) } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/auth/mod.rs.html b/src/mcaptcha/pages/auth/mod.rs.html index bed666e3..2d6243d1 100644 --- a/src/mcaptcha/pages/auth/mod.rs.html +++ b/src/mcaptcha/pages/auth/mod.rs.html @@ -126,5 +126,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/auth/register.rs.html b/src/mcaptcha/pages/auth/register.rs.html index 8d5500eb..88b74896 100644 --- a/src/mcaptcha/pages/auth/register.rs.html +++ b/src/mcaptcha/pages/auth/register.rs.html @@ -90,5 +90,5 @@ .body(&**INDEX) } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/auth/sudo.rs.html b/src/mcaptcha/pages/auth/sudo.rs.html index 337c426c..9adb6b87 100644 --- a/src/mcaptcha/pages/auth/sudo.rs.html +++ b/src/mcaptcha/pages/auth/sudo.rs.html @@ -94,5 +94,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/errors.rs.html b/src/mcaptcha/pages/errors.rs.html index 366eda17..61dfecb1 100644 --- a/src/mcaptcha/pages/errors.rs.html +++ b/src/mcaptcha/pages/errors.rs.html @@ -244,5 +244,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/mod.rs.html b/src/mcaptcha/pages/mod.rs.html index 89ea7400..ff214ad3 100644 --- a/src/mcaptcha/pages/mod.rs.html +++ b/src/mcaptcha/pages/mod.rs.html @@ -232,5 +232,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/mod.rs.html b/src/mcaptcha/pages/panel/mod.rs.html index 280d8346..03d8ce0e 100644 --- a/src/mcaptcha/pages/panel/mod.rs.html +++ b/src/mcaptcha/pages/panel/mod.rs.html @@ -202,5 +202,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/notifications.rs.html b/src/mcaptcha/pages/panel/notifications.rs.html index c5834f93..29f0707f 100644 --- a/src/mcaptcha/pages/panel/notifications.rs.html +++ b/src/mcaptcha/pages/panel/notifications.rs.html @@ -264,5 +264,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/settings.rs.html b/src/mcaptcha/pages/panel/settings.rs.html index 06219801..3b9308e3 100644 --- a/src/mcaptcha/pages/panel/settings.rs.html +++ b/src/mcaptcha/pages/panel/settings.rs.html @@ -228,5 +228,5 @@ .body(page) } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/sitekey/add.rs.html b/src/mcaptcha/pages/panel/sitekey/add.rs.html index 0c77db2f..b86c9540 100644 --- a/src/mcaptcha/pages/panel/sitekey/add.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/add.rs.html @@ -184,5 +184,5 @@ .body(&**EASY_INDEX) } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/sitekey/delete.rs.html b/src/mcaptcha/pages/panel/sitekey/delete.rs.html index 4f5aa4ee..34778106 100644 --- a/src/mcaptcha/pages/panel/sitekey/delete.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/delete.rs.html @@ -80,5 +80,5 @@ .body(page) } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/sitekey/edit.rs.html b/src/mcaptcha/pages/panel/sitekey/edit.rs.html index eea0fc43..faa466aa 100644 --- a/src/mcaptcha/pages/panel/sitekey/edit.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/edit.rs.html @@ -398,5 +398,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/sitekey/list.rs.html b/src/mcaptcha/pages/panel/sitekey/list.rs.html index 4c4dc0ed..97c9e838 100644 --- a/src/mcaptcha/pages/panel/sitekey/list.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/list.rs.html @@ -214,5 +214,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/sitekey/mod.rs.html b/src/mcaptcha/pages/panel/sitekey/mod.rs.html index 3905c668..ee65c0b9 100644 --- a/src/mcaptcha/pages/panel/sitekey/mod.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/mod.rs.html @@ -202,5 +202,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/panel/sitekey/view.rs.html b/src/mcaptcha/pages/panel/sitekey/view.rs.html index eb910396..9b7c9b00 100644 --- a/src/mcaptcha/pages/panel/sitekey/view.rs.html +++ b/src/mcaptcha/pages/panel/sitekey/view.rs.html @@ -264,5 +264,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/routes.rs.html b/src/mcaptcha/pages/routes.rs.html index d536e277..851bb46b 100644 --- a/src/mcaptcha/pages/routes.rs.html +++ b/src/mcaptcha/pages/routes.rs.html @@ -158,5 +158,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/pages/sitemap.rs.html b/src/mcaptcha/pages/sitemap.rs.html index cda15b13..ea91db9b 100644 --- a/src/mcaptcha/pages/sitemap.rs.html +++ b/src/mcaptcha/pages/sitemap.rs.html @@ -112,5 +112,5 @@ .body(&**INDEX) } -
+
\ No newline at end of file diff --git a/src/mcaptcha/routes.rs.html b/src/mcaptcha/routes.rs.html index 9a409759..35e7ba5a 100644 --- a/src/mcaptcha/routes.rs.html +++ b/src/mcaptcha/routes.rs.html @@ -52,5 +52,5 @@ crate::static_assets::services(cfg); } -
+
\ No newline at end of file diff --git a/src/mcaptcha/settings.rs.html b/src/mcaptcha/settings.rs.html index 35e596b4..da4c7147 100644 --- a/src/mcaptcha/settings.rs.html +++ b/src/mcaptcha/settings.rs.html @@ -488,5 +488,5 @@ // } //} -
+
\ No newline at end of file diff --git a/src/mcaptcha/static_assets/filemap.rs.html b/src/mcaptcha/static_assets/filemap.rs.html index 1f673e0c..ca330252 100644 --- a/src/mcaptcha/static_assets/filemap.rs.html +++ b/src/mcaptcha/static_assets/filemap.rs.html @@ -96,5 +96,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/static_assets/mod.rs.html b/src/mcaptcha/static_assets/mod.rs.html index ccc42e52..c91e488d 100644 --- a/src/mcaptcha/static_assets/mod.rs.html +++ b/src/mcaptcha/static_assets/mod.rs.html @@ -54,5 +54,5 @@ cfg.service(static_files::favicons); } -
+
\ No newline at end of file diff --git a/src/mcaptcha/static_assets/static_files.rs.html b/src/mcaptcha/static_assets/static_files.rs.html index 60c840be..04249c7e 100644 --- a/src/mcaptcha/static_assets/static_files.rs.html +++ b/src/mcaptcha/static_assets/static_files.rs.html @@ -340,5 +340,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/stats.rs.html b/src/mcaptcha/stats.rs.html index 0f9acbd6..b86c3b92 100644 --- a/src/mcaptcha/stats.rs.html +++ b/src/mcaptcha/stats.rs.html @@ -264,5 +264,5 @@ } } -
+
\ No newline at end of file diff --git a/src/mcaptcha/widget/mod.rs.html b/src/mcaptcha/widget/mod.rs.html index 9f28442a..89128d22 100644 --- a/src/mcaptcha/widget/mod.rs.html +++ b/src/mcaptcha/widget/mod.rs.html @@ -166,5 +166,5 @@ } } -
+
\ No newline at end of file diff --git a/storage.js b/storage.js index c6d070de..a0eef58b 100644 --- a/storage.js +++ b/storage.js @@ -1 +1 @@ -var darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");var settingsDataset=(function(){var settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}var dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){var current=getCurrentValue(settingName);if(current!==null){return current}if(settingsDataset!==null){var def=settingsDataset[settingName.replace(/-/g,'_')];if(def!==undefined){return def}}return null}var localStoredTheme=getSettingValue("theme");var savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){var length=arr.length;var i;if(reversed){for(i=length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(i=0;i=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchToSavedTheme()}window.addEventListener("pageshow",function(ev){if(ev.persisted){setTimeout(switchToSavedTheme,0)}}) \ No newline at end of file +"use strict";const darkThemes=["dark","ayu"];window.currentTheme=document.getElementById("themeStyle");window.mainTheme=document.getElementById("mainThemeStyle");const settingsDataset=(function(){const settingsElement=document.getElementById("default-settings");if(settingsElement===null){return null}const dataset=settingsElement.dataset;if(dataset===undefined){return null}return dataset})();function getSettingValue(settingName){const current=getCurrentValue(settingName);if(current!==null){return current}if(settingsDataset!==null){const def=settingsDataset[settingName.replace(/-/g,"_")];if(def!==undefined){return def}}return null}const localStoredTheme=getSettingValue("theme");const savedHref=[];function hasClass(elem,className){return elem&&elem.classList&&elem.classList.contains(className)}function addClass(elem,className){if(!elem||!elem.classList){return}elem.classList.add(className)}function removeClass(elem,className){if(!elem||!elem.classList){return}elem.classList.remove(className)}function onEach(arr,func,reversed){if(arr&&arr.length>0&&func){if(reversed){const length=arr.length;for(let i=length-1;i>=0;--i){if(func(arr[i])){return true}}}else{for(const elem of arr){if(func(elem)){return true}}}}return false}function onEachLazy(lazyArray,func,reversed){return onEach(Array.prototype.slice.call(lazyArray),func,reversed)}function hasOwnPropertyRustdoc(obj,property){return Object.prototype.hasOwnProperty.call(obj,property)}function updateLocalStorage(name,value){try{window.localStorage.setItem("rustdoc-"+name,value)}catch(e){}}function getCurrentValue(name){try{return window.localStorage.getItem("rustdoc-"+name)}catch(e){return null}}function switchTheme(styleElem,mainStyleElem,newTheme,saveTheme){const newHref=mainStyleElem.href.replace(/\/rustdoc([^/]*)\.css/,"/"+newTheme+"$1"+".css");if(saveTheme){updateLocalStorage("theme",newTheme)}if(styleElem.href===newHref){return}let found=false;if(savedHref.length===0){onEachLazy(document.getElementsByTagName("link"),el=>{savedHref.push(el.href)})}onEach(savedHref,el=>{if(el===newHref){found=true;return true}});if(found){styleElem.href=newHref}}function useSystemTheme(value){if(value===undefined){value=true}updateLocalStorage("use-system-theme",value);const toggle=document.getElementById("use-system-theme");if(toggle&&toggle instanceof HTMLInputElement){toggle.checked=value}}const updateSystemTheme=(function(){if(!window.matchMedia){return()=>{const cssTheme=getComputedStyle(document.documentElement).getPropertyValue("content");switchTheme(window.currentTheme,window.mainTheme,JSON.parse(cssTheme)||"light",true)}}const mql=window.matchMedia("(prefers-color-scheme: dark)");function handlePreferenceChange(mql){const use=theme=>{switchTheme(window.currentTheme,window.mainTheme,theme,true)};if(getSettingValue("use-system-theme")!=="false"){const lightTheme=getSettingValue("preferred-light-theme")||"light";const darkTheme=getSettingValue("preferred-dark-theme")||"dark";if(mql.matches){use(darkTheme)}else{use(lightTheme)}}else{use(getSettingValue("theme"))}}mql.addListener(handlePreferenceChange);return()=>{handlePreferenceChange(mql)}})();function switchToSavedTheme(){switchTheme(window.currentTheme,window.mainTheme,getSettingValue("theme")||"light",false)}if(getSettingValue("use-system-theme")!=="false"&&window.matchMedia){if(getSettingValue("use-system-theme")===null&&getSettingValue("preferred-dark-theme")===null&&darkThemes.indexOf(localStoredTheme)>=0){updateLocalStorage("preferred-dark-theme",localStoredTheme)}updateSystemTheme()}else{switchToSavedTheme()}window.addEventListener("pageshow",ev=>{if(ev.persisted){setTimeout(switchToSavedTheme,0)}}) \ No newline at end of file